作者Fat92 (死大胖)
看板C_and_CPP
標題[問題] Link error
時間Sat Apr 14 14:50:20 2012
環境:Linux
問題:
我想請問一下版上的朋友,我現在在修改一個別人以完成的程式,
那我主要是將這個程式在另外加外部的物件近來使用。
下面是別人程式makefile的main.o:./main.cpp
$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS)
$(AM_CXXFLAGS) $(CXXFLAGS) -MT main.o -MD -MP -MF $(DEPDIR)/main.Tpo -c -o
main.o `test -f './main.cpp' || echo '$(srcdir)/'`./main.cpp
HADOOP_INSTALL = /opt/hadoop
PLATFORM = Linux-i386-32
CPPFLAGS = -m32 -I$(HADOOP_INSTALL)/c++/$(PLATFORM)/include
Link = -L$(HADOOP_INSTALL)/c++/$(PLATFORM)/lib -lhadooppipes -lhadooputils -lpthread
如果我把CPPFLAGS不給值Make後會說外部加進來的.h檔是找不到的
如果CPPFLAGS給定上面的值錯誤訊息會說這個物件內的方法是undefined reference
也就是main中使用到.h的方法都是undefined。
我的想法可能是Link 時link不到.a檔
因為我對於makefile東西還不夠了解,上網看了些資料還是不太懂。
所以我想請問版上的朋友要如何能夠修改成link的到呢?我是不太了解
link是否有什麼規則。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.46.133.231
推 LPH66:你的系統裡有 libhadooppipes.a libhadooputils.a 嗎? 04/14 14:58
→ LPH66:看起來像是 hadoop 的 library 的樣子 04/14 14:58
→ LPH66:一樓的問題或者可以改成: 你有裝了 hadoop 的 library 了嗎? 04/14 14:59
→ Fat92:我有放在/opt/hadoop/c++/Linux-i386-32/lib 內 04/14 15:00
→ Fat92:我用官方所給的sample檔案去make是可以link的到 04/14 15:01