ld(链接器或加载器)程序将目标文件,归档文件和(参考)共享库组合在一起,将其数据和地址与符号引用一起重定位。链接通常是编译程序的最后一步。
使用 gcc 在 C++ 程序中静态包含 libc,而不使用 -static 选项
我正在尝试构建一个具有尽可能少的动态依赖项的小型 C++ 程序。 我面临的问题是我尝试构建的程序与
当 -L 已经告诉共享库路径在哪里时,我不明白为什么需要提供 rpath 或使用 LD_LIBRARY_PATH 设置环境变量。 这个答案说:-L 告诉 ld 去哪里看...
我已经使用以下命令组装了我的汇编程序: nasm -f win64 -o test.obj test.asm test.asm 包含一些调用 Win32 函数的函数,例如 GetStdHandle、HeapAlloc 等 不...
我听说过 gcc 中的 __attribute__((naked)),这是将一些代码放入部分的常见方法,您不想在其中进行额外的调用。 例如在AVR中你经常可以找到这样的代码...
这是我的function.c 文件。 int max(int a, int b) { 返回a>b?甲:乙; } 这是我的 head.h 文件。 #pragma 一次 extern int max(int a,int b); 这是我的 main.c 文件。 #包括 #
编辑: 我通过使用 ld -o output main.o -L /lib/gcc/x86_64-linux-gnu /lib/x86_64-linux-gnu/crti.o /lib/x86_64-linux-gnu/crtn.o / 让它工作lib/x86_64-linux-gnu/crt1.o -动态链接器 /lib64/ld-lin...
Xcode 15.0.1,macOS Sonoma:Clang 存档或链接问题
我在 C 上构建项目时遇到问题,并且我创建了最小构建来重现该问题。项目构建并使用.a库,报错: 链接器测试$ make gcc -Wall -g -c -o main.o main.c 海湾合作委员会...
假设我正在尝试从以下位置创建可执行二进制文件: // main.c #包括 int main() { printf("你好,世界!"); 返回0; } 我可以运行 gcc main.c 并得到
为什么 gcc 添加 .comment 和 .note.gnu.property 部分?
任何人都可以解释为什么 gcc 在目标代码中添加 .comment 和 .note.gnu.property 部分,以及如何告诉 gcc 不要添加它们,可能吗? 谢谢。
使用自定义python安装编译gdb 13.1找不到-lpython3.11
我在 PYTHON_DIR 中安装了 python。这是在 Linux RHEL7 上。 ls $PYTHON_DIR bin 包含 lib 共享 ls $PYTHON_DIR/lib libpython3.11.so libpython3.11.so.1.0 libpython3.so pkgconfig python3.11 我确实...
ld 失败,因为 libselinux 未定义对 gettid@GLIBC_2.30 的引用
我正在尝试从源代码构建 glibc 2.24。主机操作系统是WSL Ubuntu 20.04,编译器是gcc 9。 尝试链接 glibc 的 nss 模块时,ld 实用程序失败: /usr/bin/ld: /usr/lib/gcc/x86_64-
我试图让 gcc 的 ld 在将一堆使用 -fpic 标志编译的目标文件放在一起的共享库时忽略未解析的引用。 到目前为止我尝试了很多选项,例如(
当前在我们针对 macOS 的 C++ 版本中看到此链接器警告: [build] [430/431 99% :: 9.484] 链接 CXX 可执行文件 foobar [build] ld:警告:-未定义错误已弃用 我们设置这个链接器
我有一个与 gcc 链接器相关的问题。 我正在使用嵌入式东西(PIC32),但 PIC32 的编译器和链接器基于 gcc,因此,主要内容对于“常规”gcc 链接器应该是通用的,并且......
我正在使用 JHU 版本的 PintOS 来完成 PintOS 项目。但是当我在 src/userprog(在我的本地计算机上是 ~/Documents/PintOS/userprog/)下进行操作时,它会向我抛出以下错误: 光盘...
所以首先有一个名为 main.cpp 的文件,我想使用以下命令来编译它: g++ -o sfml_example main.cpp -lsfml-graphics -lsfml-window -lsfml-system 顺便说一句,这是代码: #包括 所以首先有一个名为 main.cpp 的文件,我想使用以下命令来编译它: g++ -o sfml_example main.cpp -lsfml-graphics -lsfml-window -lsfml-system 顺便说一句,这是代码: #include <SFML/Graphics.hpp> int main() { sf::RenderWindow window(sf::VideoMode(800, 600), "SFML Window"); while (window.isOpen()) { sf::Event event; while (window.pollEvent(event)) { if (event.type == sf::Event::Closed) window.close(); } window.clear(); window.display(); } return 0; } 当我尝试编译它时,它只是这样说: /usr/bin/ld: cannot find -lsfml-graphics: No such file or directory /usr/bin/ld: cannot find -lsfml-window: No such file or directory /usr/bin/ld: cannot find -lsfml-system: No such file or directory collect2: error: ld returned 1 exit status 我试图找到 lsfml 文件在哪里,我在 /lib64 找到了它 注意:我使用的是 Fedora Linux Workspace 版本 39 因此,请任何能够找到如何成功编译代码的解决方案的人都将发送解决方案。 谢谢! 我从未使用过 fedora,,但运行了 fedora:latest 的 Docker 镜像,我在裸露的新 Fedora 安装上执行了以下步骤,它编译和链接得很好。 启动 Fedora 的 Docker 镜像: docker run -it -v "$(pwd)":/work fedora:latest 软呢帽容器内: sudo dnf install g++ pkg-config SFML-devel g++ main.cpp $(pkg-config --libs --cflags sfml-all) -o program
尽管订阅正在运行,但如何在使用 clatedb 中的Quantumleap 时使用 Orion LD 上下文代理获取丢失的表架构?
{ “科尔斯”:[ “架构名称” ], “行”:[ [ “一团” ], [ “文档” ], [...
g++“/ld.exe:找不到l:mylib.a:没有这样的文件或目录
在我阅读了几篇针对我的问题的论坛帖子后,这些帖子对我没有任何帮助,我向您寻求帮助。 我正在尝试在 Windows 上使用 GNU 编译器创建 .dll。这个.dll需要一个库,我们称之为...
ld:未知选项:--no-as-needed。有什么解决办法吗?
我正在尝试安装一个在Ubuntu上开发的项目,但现在我正在尝试使其在Max OSX上运行 - 版本:10.10.5(Yosemite)。 我当前的 ld 版本默认随 OSX 一起提供: ...
我希望我的问题足够简洁。 我目前正在研究执行 main() 之前微控制器中实际发生的情况。我对 Cortex M4 STM 编程有一些经验...