C++ 编译对象后链接共享库时出错
我编译了对象文件,然后尝试编译可执行文件,但失败的原因是“theLib”中有未定义的函数引用 (迄今为止的工作) (错误:C++ 编译对象后链接共享库时出错,c++,gcc,shared-libraries,C++,Gcc,Shared Libraries,我编译了对象文件,然后尝试编译可执行文件,但失败的原因是“theLib”中有未定义的函数引用 (迄今为止的工作) (错误:libtheLib.so:未定义对“某些函数”的引用) 我到处查看答案,他们都建议将-ltheLib部分移到依赖项之后(我这样做了)。但它仍然不起作用。真正让我感到奇怪的是,同一个库在不同的目录中编译一个示例时,效果很好 图书馆在C中。这会不会导致编译C++的混乱?或者我只是在编译.o文件时遗漏了什么?结果表明,库依赖于我必须在自己的源代码中实现和提供的函数。我从来不知道有些
libtheLib.so:未定义对“某些函数”的引用
)
我到处查看答案,他们都建议将-ltheLib
部分移到依赖项之后(我这样做了)。但它仍然不起作用。真正让我感到奇怪的是,同一个库在不同的目录中编译一个示例时,效果很好
<>图书馆在C中。这会不会导致编译C++的混乱?或者我只是在编译
.o
文件时遗漏了什么?结果表明,库依赖于我必须在自己的源代码中实现和提供的函数。我从来不知道有些图书馆会这样做,但我从中吸取了教训。一旦我实现了导致错误的功能并添加了那些源文件,它就起作用了。你使用<代码>外部> C >代码>函数>代码> > TILB < /C> >你在C++代码中使用吗?库头确实包括这个,是的。您可能需要找出lib的依赖项,并将它们添加到链接器命令行中。
g++ -I./theLib/src -c -o obj/main.o src/main.cpp
g++ -L./theLib -Wl,-rpath=./theLib obj/main.o -ltheLib -o exe