linker相关内容

使用 printf 和 ld 链接程序?

在使用 NASM 构建定义自己的 _start 而不是 main 的汇编程序时,我得到了一个 undefined reference to _printfx86-64 Ubuntu 构建命令: nasm -f elf64 hello.asmld -s -o 你好你好.ohello.o:在函数“_start"中:hello.asm:(.text+0x1a): undefined refer ..
发布时间:2022-01-11 15:40:49 服务器开发

如何让这个简单的程序集运行?

这是我第一次尝试用汇编编程.我使用的是 64 位 Mac 操作系统.我也在使用 NASM.我已经四处寻找解决方案,但找不到任何适用于我的机器的东西. 谁能帮我解决这个问题?这是代码和错误,谢谢! hello.asm 全局开始部分 .text开始:mov rax, 1mov rdi, 1mov rsi, 消息mov rdx, 13系统调用移动 eax, 60xor rdi, rdi系 ..
发布时间:2022-01-11 15:40:33 其他开发

如何将 VSTS .lib 转换为 MinGW .a?

我有一个用 Visual Studio 编译的静态库,我想从 MinGW 链接到它. 我尝试更改后缀,但收到一堆警告,例如:Warning: .drectve/DEFAULTLIB:"uuid.lib"/DEFAULTLIB:"uuid.lib"/DEFAULTLIB:"MSVCRT"/DEFAULTLIB:"OLDNAMES" ' 无法识别. 还有一些错误,包括:./libetpan ..
发布时间:2022-01-11 15:40:16 其他开发

混合 C++ 和 Fortran 链接问题

我在网上做了一些搜索,但我找不到如何从 linux 编译简单的 C++ 和 Fortran 代码.我需要让它变得复杂,但我只需要知道如何从一个简单的例子开始. 我的 C++ 代码是这样的: #include 使用命名空间标准;extern int Add(int *, int *);extern int 乘法(int *,int *);主函数(){整数a,b,c;cou ..
发布时间:2022-01-11 15:39:50 C/C++开发

为什么在链接时不解析共享库的符号?

这是我在此站点上的第二篇文章,旨在了解 gcc 的编译/链接过程.当我尝试制作可执行文件时,需要在链接时解析符号,但是当我尝试制作共享库时,符号不会在此库的链接时解析.当我尝试使用此共享库制作可执行文件时,它们可能会得到解决.动手: bash$ cat printhello.c#include //#包括“look.h"无效打印你好(){看();printf("你好世界\n") ..
发布时间:2022-01-11 15:39:35 服务器开发

DLL 和 LIB 文件

DLL 和 LIB 文件有什么区别?DLL 文件里面有什么,LIB 文件里面有什么?创建可执行文件是否需要 DLL 和 LIB 文件? 解决方案 DLL 文件是最终的构建产品,它是您安装在客户机器上的文件.它与 EXE 文件非常相似,结构相同,但可以按需加载到另一个程序中. LIB 文件用于构建您的程序,它只存在于您的构建机器上,您不会发布它.有两种.静态链接库是一袋 .obj 文件 ..
发布时间:2022-01-11 15:39:25 其他开发

gcc 构建链接,但共享库未与 ldd 一起出现

我有一个必须构建的程序.程序依赖libA,libA依赖libB.两个库都在同一个文件夹中,但 ldd libA.so 不包括 libB.so 所以我必须在链接时添加它. 这是我的 gcc 命令: gcc -L/path/to/libraries/lib -lA -lB -I/path/to/libraries/include main.cpp 程序构建并链接,但没有启动.它给了我 ..
发布时间:2022-01-11 15:39:08 其他开发

extern const char* const SOME_CONSTANT 给我链接器错误

我想在 API 中提供一个字符串常量,如下所示: extern const char* const SOME_CONSTANT; 但如果我在我的静态库源文件中将其定义为 const char* const SOME_CONSTANT = "test"; 我在链接到该库并使用 SOME_CONSTANT 时遇到链接器错误: 错误 1 ​​错误 LNK2001:无法解析的外部符号“cha ..
发布时间:2022-01-11 15:39:02 C/C++开发

什么是“___emutls_get_address"?象征?

哦,我是 GCC、MAC 和 Makefile 的新手.今天我打算使用 MAC OS X 和 GCC 4.4.2 构建一个动态库,但是在链接 .o 文件时,编译器会这样抱怨: 未定义符号:“___emutls_get_address",引用自:michael.o 中的 _mallocmichael.o 中的 _mallocld:未找到符号 我用谷歌搜索了这个信息,但我不能很好地理解结果,我想知 ..
发布时间:2022-01-11 15:38:53 其他开发

与静态库与单个目标文件的链接

出于某种原因,我想将静态库 (libx.a) 解压缩到单独的目标文件 (ao bo co) 中,并在链接器输入列表中指定这些目标文件 (ao bo co) 而不是 libx.a,使用其他链接器选项保持不变. 但是,我注意到上述更改导致输出可执行文件存在相当大的差异.基本上,(a.o b.o c.o) 方法会导致更大的输出大小. 那么这两种方法(libx.a 和单个目标文件)有什么区别? ..
发布时间:2022-01-11 15:38:43 其他开发

链接器故障:如何确定“/DEFAULTLIB"的位置来自

我正在尝试找到一种好方法来确定链接时哪个模块导致某个库被处理为“/DEFAULTLIB",如 Visual Studio 的详细链接器输出所示. 这是我的情况,我有几个静态库先决条件,每个都有一个发布版本和一个调试版本(BlahD.lib 和 Blah.lib).由于某种原因,在链接时,所有 *D.lib 都作为默认库处理,即使我正在构建一个带有指定为“附加依赖项"的非调试库的版本.如果我从 ..
发布时间:2022-01-11 15:38:37 C/C++开发

如何调用在单独文件中定义的 Fortran 函数?

我正在尝试编译一些非常古老的代码(1986 年及之前).此代码引用了一个外部函数.今天的编译器要求更多的代码来完成这项工作.而我一直失败.我现在创建了一个小的 hello world 程序来演示这个问题. 你好.for 程序你好使用功能打印 *,“Hello World!"打印 *, f ()结束程序你好 func.for MODULE 函数公共场所包含函数 f ()f='你好功能 ..
发布时间:2022-01-11 15:38:17 其他开发

目标文件未正确添加到 Mac 上的存档中

我正在尝试从一组目标文件中构建档案.我正在这样做 ar -rs my_archive.a foo.o bar.o other_object_files.o. 在 linux 机器上一切都很好,但是当我在我的 mac 上尝试相同的命令时,似乎只添加了一些目标文件.这会导致对应于子例程的未定义符号,比如 other_object_files.o. 此外,如果我尝试手动链接导致未定义符 ..
发布时间:2022-01-11 15:38:00 其他开发

链接错误“未定义的引用";关于编译过程中的boost静态库

我正在尝试使用 boost 库 1.57 在 Linux x64 上编译我的 C++ 项目. 这个项目是用 scons 编译的,我在 Arch Linux 上编译成功,但这次在 Ubuntu 机器上编译失败. 我为链接添加了 -lboost_coroutine 标志,但错误“未定义引用"仍然存在. /usr/bin/g++ -o build/gcc.release/app -pthr ..
发布时间:2022-01-11 15:37:53 服务器开发

如何针对发布构建的库 (MSVCRT.lib) 构建调试 .exe (MSVCRTD.lib)?

我正在使用 Visual C++ 2008,SP1.我在调试构建配置中有一个 QT 应用程序(gui、.exe).它设置为使用 CRT 的多线程调试 DLL 版本,即 MSVCRTD.lib. 我正在链接以发布模式构建并使用 CRT 的多线程 DLL(非调试)版本的第 3 方库,即 MSVCRT.lib. 它链接并运行,但在启动时崩溃.链接时我收到警告: LINK:警告 LNK4 ..
发布时间:2022-01-11 15:37:43 C/C++开发

链接到 gcc 中的增强正则表达式

我正在尝试编译我在 linux 上使用正则表达式的程序.我在库/正则表达式/构建通过键入制作-fgcc.mak它创建了一个目录 gcc,其中包含以下四个文件 boost_regex-gcc-1_35boost_regex-gcc-d-1_35libboost_regex-gcc-1_35.alibboost_regex-gcc-d-1_35.a 现在我想使用我的程序中的正则表达式,它位于某个任 ..
发布时间:2022-01-11 15:37:27 C/C++开发