linker相关内容
我在 Windows 上有一个 C++/MFC 应用程序 - 动态链接它只有 60kb 静态它 > 3Mb. 它是通过电子邮件分发给客户的,因此需要尽可能小. 它静态链接 MFC 和 MSCVRT 库 - 因为它修复了一些问题,我不希望更多关于缺少库的支持电话 - 尤其是非常有用的“应用程序配置不正确"! 有没有办法从 Windows exe 中删除所有额外的 MFC 内容,即 dl
..
在 Boost 库文档 页面上,有两个名为“仅标头库"和“自动链接". 我想“仅标题库" 意味着您不必链接到 Boost 库才能使用它们,“自动链接" 意味着你必须链接. 但是当我使用 Boost.Timer 时,我必须链接一个名为 timer 的静态或动态库(libboost_timer.a 和 >libboost_timer.so.1.48.0 和 Linux 库路径下的各种软链接
..
我正在使用 Eclipse CDT 在 Linux 64bit 下编写一个简单的 C 共享库. 代码在 中有一个对 rand() 函数的引用.它可以正常编译,但是在链接时它会从链接器报告以下错误: gcc -shared -o "libalg.so" ./sort.o/usr/bin/ld: ./sort.o: 重定位 R_X86_64_PC32 针对未定义的符号 `
..
我正在绑定交叉编译,为此我需要找到 Xcode 放置 arm-gcc 编译器的位置. 它曾经在/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2 但在 Xcode 5 中消失了. 有什么想法吗?
..
当我检查 gcc -v -o proggy.exe proggy.o 生成的代码时,我发现命令行扩展为一大堆库选项和库,所有这些都使用 collect2.exe 链接.ld.exe怎么了?为什么我看不到?有人可以向我解释一下 collect2.exe 的作用吗? 解决方案 collect2 是一个实用程序,用于生成构造函数表,__main(自动生成的函数在 main 的开头调用)依赖于.通
..
我正在寻找一种工具来简化对大型 C++ 项目 (VC6) 的链接器映射文件的分析. 在维护期间,二进制文件稳定增长,我想弄清楚它的来源.我怀疑在不同 DLL 之间共享的库中存在一些过度热心的模板扩展,但是浏览地图文件并没有提供很好的线索. 有什么建议吗? 解决方案 这个是一个很棒的编译器生成的地图文件分析/资源管理器/查看器工具.检查是否可以浏览 gcc 生成的地图文件.
..
我知道 -Wl,-shared 是 ld 的一个选项.我见过有人这样编译, $ gcc -shared -Wl,-soname,libtest.so -o libtest.so *.o 还有这样的人 $ gcc -Wl,-shared -Wl,-soname,libtest.so -o libtest.so *.o 所以,我想知道 -shared 和 -Wl,-shared 之间是否有一些
..
当我尝试运行我只有执行权限的脚本时出现以下错误: uname:符号查找错误:/home/dumindara/random/sotest/a.out:未定义符号:dlsym 这是在我将 LD_PRELOAD 环境变量设置为 /home/dumindara/random/sotest/a.out 之后. a.out有一个测试malloc函数,内部调用dlsym. 我在运行 ls
..
我需要构建两个 3rd 方共享库,因此它们的 .so 文件将被其他项目重用.但是,在构建这些库之一后,包含到另一个库的硬编码路径.此路径在其他机器上无效并导致链接器警告.如何防止完整路径嵌入到生成的 .so 文件中? 详情: 第一个库源:~/dev/A 第二个库源:~/dev/B 它们都有 configure 脚本来生成 make 文件.库 B 依赖于 A.所以,首先我构建 A
..
我正在尝试使用 cpputest 构建一个简单的单元测试可执行文件.我已经将 cpputest 框架构建到一个静态库中,现在正试图将它链接到一个可执行文件中.但是,由于相关代码,我被绑定到一个相当复杂的 Makefile 设置中. 这是我的命令行: /usr/bin/qcc -V4.2.4,gcc_ntoarmle_acpp-ne -lang-c++ -O2 -g -g -o Applic
..
关于以下链接:http://www.archlinux.org/news/libpnglibtiff-rebuilds-move-from-testing/ 有人可以向我解释为什么一个程序在其库之一更新后应该重新构建吗? 既然“主"文件根本没有改变,这有什么意义呢? 解决方案 如果涉及的函数的签名没有改变,那么“重建"程序意味着目标文件必须被链接再次.您不需要再次编译它们.
..
我有一个简单的程序来测试 python 开发文件的可用性: #includeint main(){Py_Initialize();Py_Finalize();} 我将它(安装了 python 2.7)编译为 gcc -I/usr/include/python2.7 -lpython2.7 p.c.它在其他机器上运行良好,除了在 Ubuntu 12.04(精确)的大部分干净的
..
我们已经完成了 MSDN WRT 到这个错误(除了 #5 ).不同机器上的三个不同的人遇到了同样的问题.PDB 已创建,但在中间某处失败. 详情: 67 个静态库 4.27 GB 的静态库 1048575 字节 - 链接器失败时 PDB 的大小 PDB 的最后几兆字节为空(零) 发布构建成功 &生成一个 PDB(我们打开它,exe 中没有调试信息) 发布版本 PDB 不到 1
..
我想将一些用户定义的数据放入自定义部分,以供应用程序和离线分析器同时读取.假设以下示例: const int* get_data(){__attribute__((section(".custom")))静态常量 int 数据 = 123;返回&数据;}内联常量 int* inline_get_data(){__attribute__((section(".custom")))静态常量 int
..
假设我有 libA.例如,它依赖于 libSomething,因为 libA 的非内联方法调用 libSomething.h 中的方法这一简单事实.在这种情况下,依赖关系如何联系起来?libA 在编译时是否必须静态链接到 libSomething,或者 libA 的用户(使用 libA 的应用程序)是否需要同时链接到 libA 和 libSomething? 谢谢 解决方案 静态链接
..
我遇到了双重绑定.一方面,对于我的 iPhone 应用程序使用的第 3 方静态库之一,必须在应用程序项目或目标设置中设置链接器标志 -all_load.否则,应用程序在运行时崩溃,找不到从 lib 内部调用的某些符号.另一方面,对于另一个 3rd 方静态库,-all_load 不得在应用程序级别设置,否则由于“重复符号"链接器错误,应用程序将无法构建. 为了解决这个问题,我现在想使用 for
..
有很多 PE 文件浏览器.如果您有兴趣,这里有一个不错的列表: PE 文件格式查看器: PE 浏览器 http://www.pe-explorer.com/ PE 观点:http://www.magma.ca/~wjr/PEBrowse 专业版 http://www.smidgeonsoft.prohosting.com/pebrowse-pro-file-viewer.html
..
安装新的构建机器后,我发现它带有标准 C++ 库的 6.0.10 -rw-r--r-- 1 root root 1019216 2009-01-02 12:15 libstdc++.so.6.0.10 但是,我们的许多目标机器仍然使用旧版本的 libstdc++,例如: -rwxr-xr-x 1 root root 985888 Aug 19 21:14 libstdc++.so.6.0.8
..
..
我不断得到 ld: 找不到 -lchaiscript_stdlib-5.3.1.so 的库clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用) 尝试链接到 .so 文件时. 我正在使用这个命令: clang++ Main.cpp -o foo -L./-lchaiscript_stdlib-5.3.1.so 我做错了什么? 文件 libchaiscript_
..