2010-08-02 84 views
3

我想编译一个包含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++新手,因为这看起来应该是微不足道的。

+2

为什么你有test.h在命令行并没有包含在你的CPP? – djondal 2010-08-02 18:08:24

+0

在命令行中指定.h文件是绝对没有意义的。它完全没有任何东西。 – AnT 2010-08-02 18:11:57

+0

如果他的头文件包含一些可执行代码(函数定义[不仅声明]或变量初始化),它可以实现一些东西,你永远不会知道... – djondal 2010-08-02 18:18:04

回答

2

试试这个:

g++ -lnewmat -ltinyxml -I. test.cpp 

-I.看的头文件在当前文件夹,包括您所需要的.h在你的.c文件

2

-I开关用于,例如:

g++ -I/usr/include -lnewmat -ltinyxml test.cpp test.h 

如果你想要一个路径添加到您使用-L库搜索路径,例如:

g++ -L/usr/lib -lnewmat -ltinyxml test.cpp test.h 
5

使用-I标志告诉它要查找包含文件的目录。