我创建了一个共享库,将它链接到一个主程序,但是这个主程序看不到任何共享库方法,也没有导入它的头文件。 这就是我所做的:
g++ -c -fPIC -o objname.o objname.cpp -I"HeadersFolder"
g++ -shared -o libmylib.so obj1.o obj2.o etc.. etc..
g++ main.cpp -L. -lmylib
现在在这个主要部分我导入了一个lib头文件,例如:
#include <Header.hpp>
g ++告诉我没有这样的文件或目录。
答案 0 :(得分:1)
“现在在这个主要文件中我导入了一个lib头文件,例如:......”
在这种情况下,您还需要添加-I
选项来编译main.cpp
:
g++ main.cpp -I"HeadersFolder" -L. -lmylib
另外你应该使用
#include "Header.hpp" // Note the quotes "
尖括号(<>
)用于包含系统标题(当预处理程序评估它们时可能会与您自己的标题冲突)。