【发布时间】:2019-08-14 19:29:49
【问题描述】:
我想将libdds.a 静态链接到一个简单的 C++ 应用程序(进行一些测试)。这是我的 C++ 代码(文件名为bridge.cpp):
#include <iostream>
int main()
{
std::cout << "Hello world!" << std::endl;
return 0;
}
这段代码暂时不使用libdds.a 中的函数,但我想确保编译之前运行良好。所以我尝试编译:
$ g++ -Wall -o bridge bridge.cpp -L. -ldds
collect2: fatal error: ld terminated with signal 6 [Abandon], core dumped
compilation terminated.
ld: ../../src/lto-plugin/lto-plugin.c :388 : dump_symtab: assertion « resolution != LDPR_UNKNOWN » failed.
这里是g++和ld的版本:
$ g++ --version
g++ (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
$ ld --version
GNU ld (GNU Binutils for Ubuntu) 2.26.1
我没有使用任何 IDE,而是使用前一个命令从命令行编译。我在 Ubuntu 16.04.6 LTS 上:
$ lsb_release -a
LSB Version: core-9.20160110ubuntu0.2-amd64:core-9.20160110ubuntu0.2-noarch:printing-9.20160110ubuntu0.2-amd64:printing-9.20160110ubuntu0.2-noarch:security-9.20160110ubuntu0.2-amd64:security-9.20160110ubuntu0.2-noarch
Distributor ID: Ubuntu
Description: Ubuntu 16.04.6 LTS
Release: 16.04
Codename: xenial
这个错误是什么意思,我该如何纠正它?
【问题讨论】:
-
缺少很多特定信息来重现您的特定问题,请添加所有信息。
-
@πάνταῥεῖ 您需要什么信息?
-
所有关于您的操作系统和开发环境的信息。
-
这类问题通常特定于 g++ 版本(或其使用的链接器)、IDE 或构建环境、所有运行的操作系统、libdds.a 是什么、如何实现图书馆建成了,还有一大堆东西。
-
@Pierre “我应该自己编译吗?”这可能是让它与您的开发环境兼容的最佳选择。
标签: c++ static-libraries ld