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

Cannot import shared library with g++

本文关键字:导入 共享 g++      更新时间:2023-10-16

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

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

现在,在这个主体中,我导入了一个lib头,类似于:

#include <Header.hpp>

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

"现在我导入了一个lib标头,类似于:…"

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

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

你也应该使用

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

尖括号(<>)用于包含系统头(当预处理器评估它们时,这些头可能与您自己的头冲突)。