12得票2回答
如何将二进制数据嵌入/链接到Windows模块中

我有一个使用Visual Studio 2008创建的项目,其中引用了大量二进制数据。我希望能够像C#一样将这些数据打包成“资源”,并将其编译为DLL。 假设我的所有数据都具有“.data”扩展名,并且目前正在从Visual Studio项目中读取。 有没有办法将这些数据编译或链接到调用它...

7得票2回答
当共享库引用未使用的静态库中的对象时,为什么最终二进制文件中会包含它们?

简介: 在 STATIC 和 SHARED 库之间使用的交叉函数导致最终二进制文件中包含所有 STATIC 库的对象(即使未使用!)。 我想你可能不理解我的意思?:-p 请坐下来并阅读以下完整的故事!为了简单和可复现性,名称已更改以保护无辜者。 预告:有一个 SSCCE 可用!(简短、...

77得票4回答
nm:"U" 符号未定义。

当我在其中一个库上运行nm命令: nm libmylib.so 我会得到像这样的一行输出: U _ZNSs4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4 我查看了nm命令的手册,得到了“U”这个标记,代表符号未定义。那么未定义的符...

89得票7回答
C语言中的共享全局变量

我该如何创建在C中共享的全局变量?如果将其放在头文件中,则链接器会抱怨变量已经定义。难道唯一的方法是在我的一个C文件中声明变量,并在想使用它的所有其他C文件的顶部手动添加extern吗?这听起来不太理想。

9得票1回答
无法使用CMake链接MacOS框架

我正在尝试使用cmake构建一个子项目(它不是xcode项目,也不是面向iPhone的应用程序,而是跨平台控制台可执行文件,其中包含一些继承自C++抽象类的objective-c++代码)。我使用了这个指南来链接mac os框架:http://www.vtk.org/Wiki/CMake:Ho...

9得票1回答
什么是“linkonce”节?

什么是“linkonce”段,它与comdat段有什么区别? 需要明确的是,我熟悉comdat段的工作原理、用法等。在谷歌搜索中,“linkonce”几乎只在假定该段的含义/意图/目的已经相当了解的论坛中讨论。

7得票2回答
链接器如何处理共享对象(.so)中的主函数main()?

假设我有一个没有主函数main的目标文件(source.o),以及一个带有主函数main的共享对象文件(libmain.so)。当二者动态链接起来创建二进制文件source.bin时,连接器如何处理入口点呢?

7得票2回答
跨编译单元的相同函数模板实例化的地址

为什么这个有效? 我看到类似的SO问题表明它是有效的,但可以有人详细解释一下吗?特别是,这种行为是否受标准保护? i.h #ifndef I_H_ #define I_H_ typedef void (*FuncPtr)(); template<typename T> v...

25得票2回答
Boost.Thread链接 - boost_thread vs. boost_thread-mt

我不清楚Boost.Thread 1.34.1库的连接选项有哪些。我使用Ubuntu 8.04,在链接时发现使用boost_thread或boost_thread-mt编译和运行都没有问题,但在上述链接中我没有找到任何有关这些或其他连接选项的文档。 什么是可用的Boost.Thread连接选...

15得票3回答
编译boost.asio示例时出现链接器错误

我正在尝试学习一些C++和Boost.Asio。我正在尝试编译以下代码示例:#include <iostream> #include <boost/array.hpp> #include <boost/asio.hpp> using boost::asio...