320得票4回答
我不理解-Wl,-rpath -Wl的含义。

为方便起见,我在下面添加了相关的man页。 首先是我的(误)理解:如果我需要使用,分隔选项,那么第二个 -Wl 不是另一个选项,因为它出现在,之前,这意味着它是-rpath选项的参数。 我不明白-rpath如何有一个-Wl,.的参数! 在我的理解中,这是有道理的:-Wl,-rpath . 这应...

287得票2回答
“.so”,“.la”和“.a”库文件有什么区别?

我知道一个.so文件是一种动态库(许多线程可以共享这样的库,因此在内存中没有必要有多个副本)。但是.a和.la之间有什么区别?它们都是静态库吗? 如果动态库比静态库有很大的优势,为什么仍然有很多静态库?何时应该尝试将代码构建为.so或.a?[mirror@home ins_openvpn]$ ...

207得票4回答
LD_LIBRARY_PATH与LIBRARY_PATH的区别

我正在构建一个简单的C++程序,想临时替换系统提供的共享库以获得更近期的版本进行开发和测试。 我尝试设置LD_LIBRARY_PATH变量,但链接器(ld)失败并显示如下错误: /usr/bin/ld: 找不到 -lyaml-cpp 我原本期望这能够起作用,因为根据ld手册: ...

203得票6回答
如何打印ld(链接器)搜索路径

如何以搜索顺序打印被ld查找的搜索路径。

178得票21回答
如何解决链接器错误 "cannot find crt1.o"?

我有一个用来进行开发的 Debian 虚拟系统。今天我想尝试 llvm/clang。安装 clang 后,我无法使用 gcc 编译我的旧 c 项目。 这是错误信息:/usr/bin/ld: cannot find crt1.o: No such file or directory /usr/b...

156得票13回答
如何使用GCC和ld删除未使用的C/C++符号?

我需要严重优化我的可执行文件大小(ARM开发),在当前的构建方案(gcc + ld)中,未使用的符号没有被剥离。通过对arm-strip --strip-unneeded用于生成的可执行文件/库的使用,无法改变可执行文件的输出大小。(我不知道为什么,也许根本无法实现)。 如果存在的话,有什么...

131得票7回答
"collect2: error: ld returned 1 exit status" 的意思是什么?

我经常看到错误 collect2: error: ld returned 1 exit status。例如,我试图构建以下代码片段: void main() { char i; printf("ENTER i"); scanf("%c", &i); clrscr(...

116得票1回答
-rpath和-L有什么区别?

GNU编译器集合(又称为gcc)和 ld 提供了许多设置库搜索路径的方法,其中包括 -rpath 和 -L 标志。手册中并未显示这两个标志之间有任何区别,实际上每个标志都将一个库添加到库搜索路径中。然而,这两个标志做的事情完全相同似乎有些奇怪。如果有的话,这两个选项之间有什么区别?

103得票1回答
"--start-group"和"--end-group"命令行选项是什么?

这些命令行选项的目的是什么?请帮忙解释以下命令行的含义:-Wl,--start-group -lmy_lib -lyour_lib -lhis_lib -Wl,--end-group -ltheir_lib 显然这与链接有关,但GNU手册并没有明确说明“grouping”具体指什么。

98得票2回答
将两个使用GCC编译的.o目标文件合并成第三个.o文件

如何将两个由GCC编译的.o目标文件合并为第三个.o文件?$ gcc -c a.c -o a.o $ gcc -c b.c -o b.o $ ??? a.o b.o -o c.o $ gcc c.o other.o -o executable 如果您可以访问源文件,则-combine GC...