当我使用 c++ 合并的静态库时出现未定义的引用错误
Undefined reference error when I use a c++ merged static library
假设我的应用程序中需要libA.a.libA.a本身,我需要在我的应用程序中静态链接到它们。为了消除这种情况,我将这两个(libA.a和libB.a)合并为libAB.a(这是使用ar工具完成的)。还没有问题。
当我想运行我的应用程序(链接到libAB.a)时,编译器开始抱怨对libA中使用libB的方法的未定义引用!当我将应用程序链接到libB.a和libAB.a时,一切都很好!根据文件大小,libAB.a 似乎是 libA 和 libB 合并的结果,但在编译时,似乎只有 libA 可供应用程序使用。
这是合并命令:
ar rcus -v ../lib/libPocoFoundationmtd.a @"Foundation.txt" "c:/MinGW/lib/libiphlpapi.a"
Foundation.txt包含一个.o文件列表,这些文件将创建一个.a文件。这是我的应用程序的编译命令:
g++ -o ./Debug/exe1 @"exe1.txt" -L. -Lc:/poco/lib/ -lPocoFoundationmtd
看来我已经找到了解决方案!我将 .o 和 .a 文件混合在一起(对象文件 + 静态库)在合并的 .a 文件中。我做了ar-x来提取.a文件的内容,然后将所有.o文件合并到一个最终合并的.a库中
很抱歉耽误了:)
相关文章:
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 对C宏的未定义引用,但在定义它时会出现重新定义错误
- 尝试调用 .h 文件中定义的变量时出现变量未定义错误
- 在C++中使用内联方法时出现未定义的符号错误
- 尝试运行 wasm 函数时出现模块未定义错误
- c++中数组的未定义错误
- 基类未定义.错误 C2504
- 获取线函数未定义错误。无法在字符串中保存可验证的内容
- 对于我的 ComplexNumber 中的某些方法,我得到了一个奇怪的未定义错误引用.cpp,不过我对模板很陌生
- 类类型重定义和基类未定义错误
- C 中的基类未定义错误
- QML[未定义]错误
- 如何构建使用 OpenCV 的 XCode 6 iOS 应用程序 - 未定义错误__cplusplus
- 变量未定义错误
- 静态方法声明但未定义错误c++
- c++ cocos-2d-x未定义错误
- 基类未定义错误(C2504)
- 单例作为模板,未定义错误
- Solaris库与STLport4.6.2链接,出现与ostream相关的未定义错误