我想編譯一個包含newmat.h和tinyxml.h的.cpp + .h文件 - 我的libnewmat.a和libtinyxml.a與我的.cpp和.h文件位於同一個目錄中,而我運行使用g ++編譯,我該如何將它指向其他.h文件?
g++ -lnewmat -ltinyxml test.cpp test.h
但仍在編譯開始處找不到newmat.h和tinyxml.h。我顯然是一個完整的C++新手,因爲這看起來應該是微不足道的。
我想編譯一個包含newmat.h和tinyxml.h的.cpp + .h文件 - 我的libnewmat.a和libtinyxml.a與我的.cpp和.h文件位於同一個目錄中,而我運行使用g ++編譯,我該如何將它指向其他.h文件?
g++ -lnewmat -ltinyxml test.cpp test.h
但仍在編譯開始處找不到newmat.h和tinyxml.h。我顯然是一個完整的C++新手,因爲這看起來應該是微不足道的。
試試這個:
g++ -lnewmat -ltinyxml -I. test.cpp
-I.
看的頭文件在當前文件夾,包括您所需要的.h在你的.c文件
的-I
開關用於,例如:
g++ -I/usr/include -lnewmat -ltinyxml test.cpp test.h
如果你想要一個路徑添加到您使用-L
庫搜索路徑,例如:
g++ -L/usr/lib -lnewmat -ltinyxml test.cpp test.h
使用-I
標誌告訴它要查找包含文件的目錄。
爲什麼你有test.h在命令行並沒有包含在你的CPP? – djondal 2010-08-02 18:08:24
在命令行中指定.h文件是絕對沒有意義的。它完全沒有任何東西。 – AnT 2010-08-02 18:11:57
如果他的頭文件包含一些可執行代碼(函數定義[不僅聲明]或變量初始化),它可以實現一些東西,你永遠不會知道... – djondal 2010-08-02 18:18:04