
[英]I don't understand -Wl,-rpath -Wl,
为方便起见,我在下面添加了相关的联机帮助页。 我的(错误)理解首先:如果我需要用 , 分隔选项,这意味着第二个-Wl不是另一个选项,因为它出现在 之前,这意味着它是-rpath选项的参数。 我不明白-rpath如何拥有-Wl,. 争论! 在我看来,这将是有意义的: 这应该使用当前目录参数调用 -r ...
[英]I don't understand -Wl,-rpath -Wl,
为方便起见,我在下面添加了相关的联机帮助页。 我的(错误)理解首先:如果我需要用 , 分隔选项,这意味着第二个-Wl不是另一个选项,因为它出现在 之前,这意味着它是-rpath选项的参数。 我不明白-rpath如何拥有-Wl,. 争论! 在我看来,这将是有意义的: 这应该使用当前目录参数调用 -r ...
[英]What's the difference between .so, .la and .a library files?
我知道.so文件是一种动态库(许多线程可以共享此类库,因此内存中不需要有多个副本)。 但是.a和.la之间有什么区别? 这些都是静态库吗? 如果动态库比静态库有很大的优势,为什么还有很多静态库? 我还想知道加载库(两种)的底层机制以及在某处使用时如何调用库中的一段代码。 我应该研究内核的哪个部分 ...
[英]LD_LIBRARY_PATH vs LIBRARY_PATH
我正在构建一个简单的 C++ 程序,我想暂时用它的更新版本替换系统提供的共享库,以进行开发和测试。 我尝试设置 LD_LIBRARY_PATH 变量,但链接器 (ld) 失败: /usr/bin/ld: 找不到 -lyaml-cpp 我希望它可以工作,因为根据 ld 手册页: 链 ...
[英]Compiling problems: cannot find crt1.o
我有一个用于开发的虚拟 Debian 系统。 今天我想试试 llvm/clang。 安装 clang 后,我无法编译我的旧 c 项目(使用 gcc)。 这是错误: 我卸载了 clang 仍然无法正常工作。 有谁知道我该如何解决这个问题? ...
[英]How to remove unused C/C++ symbols with GCC and ld?
我需要严格优化我的可执行文件的大小( ARM开发),我注意到在我当前的构建方案中( gcc + ld )未使用的符号没有被剥离。 对生成的可执行文件/库使用arm-strip --strip-unneeded不会改变可执行文件的 output 大小(我不知道为什么,也许它根本不能) 。 修改我的构 ...
[英]combine two GCC compiled .o object files into a third .o file
如何将两个GCC编译的.o对象文件合并到第三个.o文件中? 如果您有权访问源文件,则-combine GCC标志将在编译之前合并源文件: 但是这仅适用于源文件,GCC不接受.o文件作为此命令的输入。 通常,链接.o文件无法正常工作,因为您无法使用链接器的输出作为输入。 结 ...
[英]What's the difference between -rpath and -L?
gcc和ld提供了许多方法来指定库的搜索路径 - 其中包括-rpath和-L标志。 这些联机帮助页显示这两个标志之间没有差异,有效地说每个标志都会向库搜索路径添加一个库。 但两个旗帜完全相同的事情似乎很奇怪。 这两个选项之间有什么区别? ...
[英]What are the --start-group and --end-group command line options?
这些命令行选项的目的是什么? 请帮助破译以下命令行的含义: 显然它与链接有关,但GNU手册很安静,究竟是分组的意思。 ...
[英]How to get the size of an input section (to place it at the end of memory)
我有以下链接器脚本: .data & .bss被放入 ram,然后一个.heap部分填充剩余的内存。 现在我想添加一个总是放在内存末尾的.noinit部分。 所以它会被引导加载程序等忽略。 我仍然希望我的.heap部分占据.bss和.noinit之间的所有可用空间,但为此我需要知道.no ...
[英]linker error while linking boost log tutorial (undefined references)
我已经通过 yum 在 Fedora 20 上安装了 boost,并且正在尝试一些简单的示例。 但是,我无法编译日志教程中的第一个示例。 使用g++ -c boosttest.cc进行编译可以正常工作,但是当我尝试将其与 完整的错误日志: 我错过了什么? 我究竟做错了什么? 编辑 1: ...
[英]How to set the LDFLAGS in CMakeLists.txt?
我通过CMAKE_C_FLAGS在CMake中设置了CFLAGS。 是这样设置LDFLAGS? ...
[英]Architecture of i386 input file is incompatible with i386:x86-64
我正在尝试使用 Ubuntu 创建一个简单的 kernel。 在我输入的终端中 但我收到以下错误消息作为回报: ...
[英]What does KEEP mean in a linker script?
LD 手册没有解释KEEP命令的作用。 以下是具有KEEP功能的第三方链接器脚本的片段。 KEEP命令在ld什么作用? ...
[英]The proper way of forcing a 32-bit compile using CMake
抱歉,有很多类似的问题,但我确实发现谷歌搜索 CMake 查询总是会产生相似但不相同的场景,CMake 命令冲突等等! 我需要强制我的项目构建 32 位二进制文件,因为我必须链接一个只能作为 32 位使用的库。 我根据错误消息进行了诊断,例如: 因此,根据我收集的信息,我应该使用: 这确实改变了一些 ...
[英]What is the difference between -I and -L in makefile?
makefile中-I和-L标志的用法是什么? ...
[英]ld: library not found for -lcrt0.o on OSX 10.6 with gcc/clang -static flag
当我尝试构建以下程序时: 在OS X 10.6.4上,带有以下标志: 它返回以下内容: 还有其他人遇到过这种情况吗,还是没有人受到影响? 有任何解决办法吗? 谢谢 ...
[英]Linking against older symbol version in a .so file
在 x86_64 linux 上使用 gcc 和 ld 我需要链接到较新版本的库 (glibc 2.14),但可执行文件需要在具有较旧版本 (2.5) 的系统上运行。 由于唯一不兼容的符号是 memcpy(需要 memcpy@GLIBC_2.2.5 但提供 memcpy@GLIBC_2.14 的库) ...
[英]What's the difference between `-rpath-link` and `-L`?
gold人说: bfd ld的 man 听起来有点像-rpath-link用于递归包含的 sos。 ld.lld甚至没有将其列为参数。 有人可以为我澄清这种情况吗? ...
[英]How to link C++ object files with ld
我正在尝试使用 ld 而不是 g++ 链接 C++ 的 output。我这样做只是为了学习如何做,而不是出于实际目的,所以请不要建议只用 g++ 来做。 看看这个问题,这个人在运行 ld 命令时会遇到同样的错误: 链接帖子中的答案表明将 C++ 库添加为 linker 参数将解决问题,所以我尝试了 ...