我想编译一个包含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