61得票5回答
如何在OS X上进行静态链接

我正在尝试在OS X上链接静态库。我在gcc命令中使用了-static标志,但是我收到以下错误消息: ld_classic: can't locate file for: -lcrt0.o collect2: ld returned 1 exit status 我查看了man页,它的内...

61得票5回答
限制共享库链接时符号的可见性

有些平台要求你向链接器提供共享库的外部符号列表。但在大多数类Unix系统中,这并不是必需的:所有非静态符号都将默认可用。 我的理解是GNU工具链可以选择性地限制仅显式声明的符号的可见性。如何使用GNU ld实现这一点?

61得票2回答
gcc: undefined reference to

我希望您能编译这个东西。 program.c#include <libavcodec/avcodec.h> int main(){ int i = avpicture_get_size(AV_PIX_FMT_RGB24,300,300); } 运行这个程序gcc -...

60得票5回答
用C++代码调用Haskell代码

我目前正在使用C++编写应用程序,发现其中一些功能最好使用Haskell编写。我看到了有关从C代码调用Haskell的说明,但是能否在C++中做到相同的呢? 编辑:澄清一下,我想要的是一种将Haskell代码编译为外部库的方法,以便g++可以将C++的目标代码与其链接。 更新:我已经在下面...

60得票5回答
C++函数中的extern关键字。为什么不直接包含头文件?

如果我理解正确,这意味着extern void foo(); 函数foo在另一个翻译单元中声明。 1) 为什么不直接#include声明此函数的头文件? 2) 链接器在链接时如何知道在哪里查找该函数? 编辑:也许我应该澄清上面的声明随后会使用该函数。foo(); 在此翻译单元中从未定义。

60得票7回答
如何解决链接时出现的__gcov_init未定义引用问题

我现在正在进行C代码覆盖率研究,并遇到了以下问题,GCC版本为4.4.6: 添加编译器标志CFLAGS = --coverage和链接器选项LDFLAGS := --coverage或LOCAL_LDLIBS := --coverage,会出现以下错误: undefined refer...

59得票4回答
MinGW 链接器错误: winsock

我正在使用MinGW编译器在Windows上编译我的带有套接字的C++应用程序。我的链接命令看起来像这样:g++.exe -Wall -Wno-long-long -pedantic -lwsock32 -o dist/Windows/piskvorky { there are a lot o...

59得票6回答
C++类静态constexpr出现链接错误

我正在使用 g++-4.6.1 --std=c++0x 编译以下简单程序:#include <algorithm> struct S { static constexpr int X = 10; }; int main() { return std::min(S...

58得票4回答
分层的ldd(1)

由于使用Gentoo,通常会出现在更新后程序链接到旧版本的库的情况。通常情况下,revdep-rebuild可以帮助解决这个问题,但这次是对Python库的依赖关系,而python-updater无法识别。 是否有一种“分层”变体的ldd,它可以显示哪个共享库依赖于另一个共享库?大多数情况下...

56得票4回答
何时使用Visual Studio的附加依赖项?

在C++中,你有头文件(.h)、静态链接库(.lib)和动态链接库(.dll)。 在Visual Studio中,你需要在三个不同的位置提供要搜索这些文件的位置: 配置属性 => C/C++ => 常规 => 附加包含目录。 在这里列出你想要搜索并可用的“包含”目录。 配置属性 => 链...