131得票8回答
只对部分库进行静态链接

如何在使用GCC连接时仅将某些特定库静态链接到我的二进制文件中? gcc ... -static ... 尝试静态连接所有已连接的库,但我没有一些库的静态版本(例如:libX11)。

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(...

121得票14回答
编译器、链接器、装载器是什么?

我想深入了解编译器、链接器和装载器的含义和工作原理,最好是以 C++ 为例。

121得票10回答
120得票3回答
当使用模板时,为什么会出现“未解决的外部符号”错误?

当我使用模板在一个类的源代码文件(CPP)和头文件(H)之间分割代码,并且在链接最终执行文件时,尽管对象文件已经正确构建并包含在链接中,但我会遇到大量“未解析的外部符号”错误。这是怎么回事,我该如何解决?

119得票5回答
如何指定库路径的优先级?

我正在使用g++和ld编译一个C++程序。我有一个.so库文件,希望在链接时使用。但是,在/usr/local/lib目录下存在同名的库文件,并且ld选择了那个库文件而不是我直接指定的那个。我该如何解决这个问题? 以下是我的库文件路径:/my/dir/libfoo.so.0。以下是尝试过但没...

113得票6回答
__gxx_personality_v0是用来做什么的?

这是一个来自操作系统开发网站的二手问题,但由于我无法在任何地方找到合适的解释,它引起了我的好奇心。 使用gcc编译和链接一个自由站C++程序时,有时会出现以下链接器错误:out/kernel.o:(.eh_frame+0x11): undefined reference to `__gxx_p...

111得票16回答
将模板化的C++类分割成.hpp和.cpp文件,这是否可行?

我尝试编译一个C++模板类,该类分为.hpp和.cpp两个文件,但是出现了错误:$ g++ -c -o main.o main.cpp $ g++ -c -o stack.o stack.cpp $ g++ -o main main.o stack.o main.o: In fu...

109得票6回答
如何向configure/make循环添加include和lib路径?

我需要在一个我没有su权限的linux盒子上安装库的地方。我正在使用~/local[/bin,/lib,/include],但我不知道如何告诉./configure在那里查找库(特别是我正在尝试编译需要libgif的emacs,这在我的发行版中不存在)。 我尝试添加:export PATH=...

108得票5回答
Linux动态链接器中的“无版本信息可用”错误是什么意思?

我们的产品中包含一些动态链接到系统库(如“libpam”)的Linux二进制文件。在某些客户系统上,当程序运行时,我们会在标准错误输出中收到以下错误信息:./authpam: /lib/libpam.so.0: no version information available (require...