54得票2回答
“-rpath-link”和“-L”的区别是什么?

这位关于黄金的男士说: -L DIR, --library-path DIR Add directory to search path --rpath-link DIR Add DIR to link time shared library se...

52得票12回答
在.so文件中链接旧符号版本

在x86_64 Linux上使用gcc和ld,我需要链接到一个新版本的库(glibc 2.14),但可执行文件需要在旧版本系统(2.5)上运行。由于唯一不兼容的符号是memcpy(需要memcpy@GLIBC_2.2.5,但库提供的是memcpy@GLIBC_2.14),因此我想告诉链接器,它...

49得票7回答
为什么每次运行我的应用程序都必须使用export定义LD_LIBRARY_PATH?

我有一些使用共享库的代码(gcc上的C代码)。在编译时,我必须使用-I和-L显式地定义包含和库目录,因为它们不在标准位置。当我尝试运行代码时,我会得到以下错误:./sync_test ./sync_test: error while loading shared libraries: lib...

47得票2回答
如何用 ld 将 C++ 目标文件链接起来

我正在尝试使用ld而不是g++链接C ++的输出。 我这样做只是为了学习如何做,而不是为了实际目的,请不要建议仅使用g ++来完成它。 查看此问题,当该人运行ld命令时会得到相同的错误。 $ ld test.o -o test.out ld: warning: cannot find en...

47得票7回答
GNU gcc/ld - 如何在同一目标文件中,用调用者和被调用者定义包装一个符号?

为了澄清,我的问题是关于使用GCC编译器和链接器时,在同一编译单元中定义调用者和被调用者的情况下,对一个函数/符号的调用进行包装/拦截的问题。 我有一个类似以下情况的情况: /* foo.c */ void foo(void) { /* ... some stuff */ bar(...

46得票12回答
Xcode:ld:无法找到库-lAFNetworking

由于这个原因,编译构建总是失败...你有什么想法可以尝试吗? 编辑:解决方案是打开xcworkspace而不是xcproject!

46得票4回答
为什么ld在将可执行文件与需要另一个so的so链接时需要-rpath-link?

我只是好奇。我已经创建了一个共享对象:gcc -o liba.so -fPIC -shared liba.c 还有一个共享对象,它链接到前面的对象:gcc -o libb.so -fPIC -shared libb.c liba.so 现在,当创建一个链接到 libb.so 的可执行文件时,我...

46得票9回答
非常奇怪的链接器行为

这很奇怪,因为我通过删除对libm的引用来消除了下面的错误。gcc -o example example.o -Wl -L/home/kensey/cdev/lib -L/usr/lib/x86_64-linux-gnu -lmysqlclient -lpthread -lz -L/usr...

45得票4回答
如何强制gcc链接未使用的静态库

我有一个程序和一个静态库:// main.cpp int main() {} // mylib.cpp #include <iostream> struct S { S() { std::cout << "Hello World\n";} }; S s; 我希...

43得票3回答
链接器性能与交换空间有关吗?

有时候,使用一个小的C程序模拟一个占用很大静态内存块的东西是非常方便的。但我发现,在更改为Fedora 15之后,该程序编译时间变得很长,从0.1秒变成了30秒。更奇怪的是,链接器(ld)将CPU利用率提高到最大,并慢慢地开始消耗所有可用内存。经过一些尝试,我设法找到了这个新问题与我的交换文件...