【发布时间】:2023-12-21 14:32:01
【问题描述】:
将 c++ 代码与 g++ 链接时遇到问题。我有两个文件:file1 和 file2:
file1:
int A(){
return B();
}
int C(){
return 0;
}
file2:
int B(){
return 4;
}
我正在构建一个使用C() 函数的共享库,所以我只使用file1 而不是file2 进行编译。我在编译或链接时没有问题,但是当我使用共享库时,我在执行时收到一个错误,提示 B 未定义。
如果我用file2 编译和链接我没有问题。但我不想要这个解决方案,因为我有多个递归包含。
我尝试用--ffunctions-sections 和--fdata-sections 编译,然后用-Wl,--gc-sections 链接,但它没有解决我的问题。
有没有办法只链接我实际使用的符号(这里是函数)?
【问题讨论】:
标签: c++ g++ shared-libraries ld dynamic-linking