无法使用g ++导入共享库

时间:2015-03-18 18:07:55

标签: c++ linker makefile g++ shared-libraries

我创建了一个共享库,将它链接到一个主程序,但是这个主程序看不到任何共享库方法,也没有导入它的头文件。 这就是我所做的:

  1. 我在位置无关代码中编译了库的每个cpp文件
  2. g++ -c -fPIC -o objname.o objname.cpp -I"HeadersFolder"
    
    1. 我创建了着色器库,并使用它正确创建 我的主目录中的正确名称
    2. g++ -shared -o libmylib.so obj1.o obj2.o etc.. etc..
      
      1. 我试图用以下方法编译一个简单的主要内容:
      2. g++ main.cpp -L. -lmylib 
        

        现在在这个主要部分我导入了一个lib头文件,例如:

        #include <Header.hpp>
        

        g ++告诉我没有这样的文件或目录。

1 个答案:

答案 0 :(得分:1)

  

“现在在这个主要文件中我导入了一个lib头文件,例如:......”

在这种情况下,您还需要添加-I选项来编译main.cpp

g++ main.cpp -I"HeadersFolder" -L. -lmylib

另外你应该使用

#include "Header.hpp" // Note the quotes "

尖括号(<>)用于包含系统标题(当预处理程序评估它们时可能会与您自己的标题冲突)。