linker-errors 相关问题

将单独编译的目标文件组合成可执行代码时收到错误。

SDL 导致未定义符号:“_main”,引用自:start in crt1.10.5.o

当我尝试在我的 C++ 程序中使用 SDL 时,我得到以下信息: > g++ 最小.cpp SDLMain.m 未定义的符号: “_main”,引用自: 从 crt1.10.5.o 开始 ld:未找到符号 科尔...

回答 4 投票 0

在 Debian 12 上使用 GNU ld 链接 libvulkan(未定义参考)的问题

我想用Vulkan学习编程。我的第一步是枚举系统上可用的 Vulkan 扩展数量。所以我写了这个简单的代码: #包括 #包括 我想用 Vulkan 学习编程。我的第一步是枚举系统上可用的 Vulkan 扩展数量。所以我写了这个简单的代码: #include <iostream> #include <vulkan/vulkan.hpp> int main(int argc, char *argv[]) { VkResult ret; unsigned int propertyCount; ret = vkEnumerateInstanceExtensionProperties(NULL, &propertyCount, NULL); if (ret != VK_SUCCESS) return 1; std::cout << "Vulkan: Extension Count: " << propertyCount << std::endl; return 0; } 当我尝试编译和链接代码时,出现 undefined reference 错误: $ g++ -lvulkan -o vkExtension vkExtension.cpp /usr/bin/ld: /tmp/user/1000/ccgB9M9N.o: in function `main': vkExtension.cpp:(.text+0xc99): undefined reference to `vkEnumerateInstanceExtensionProperties' collect2: error: ld returned 1 exit status $ 虽然 libvulkan 安装在我的系统上(Debian 12): $ cd /usr/lib/x86_64-linux-gnu $ ls -la | grep libvulkan -rw-r--r-- 1 root root 8575696 Mar 22 2023 libvulkan_intel_hasvk.so -rw-r--r-- 1 root root 11115728 Mar 22 2023 libvulkan_intel.so -rw-r--r-- 1 root root 6918024 Mar 22 2023 libvulkan_lvp.so -rw-r--r-- 1 root root 8711344 Mar 22 2023 libvulkan_radeon.so lrwxrwxrwx 1 root root 14 Feb 6 2023 libvulkan.so -> libvulkan.so.1 lrwxrwxrwx 1 root root 20 Feb 6 2023 libvulkan.so.1 -> libvulkan.so.1.3.239 -rw-r--r-- 1 root root 457224 Feb 6 2023 libvulkan.so.1.3.239 $ 我也检查了库本身是否缺少功能(符号),但应该在已安装的库中可用。命令 nm 不会列出任何符号,因为库已被删除。所以我用了readelf: $ readelf -s --wide libvulkan.so.1.3.239 | grep vkEnumerateInstance 136: 0000000000034850 687 FUNC GLOBAL DEFAULT 12 vkEnumerateInstanceExtensionProperties 170: 0000000000034b00 639 FUNC GLOBAL DEFAULT 12 vkEnumerateInstanceLayerProperties 283: 0000000000034d80 709 FUNC GLOBAL DEFAULT 12 vkEnumerateInstanceVersion $ 我还检查了链接器(GNU ld)的默认库搜索路径,但路径是正确的。 缺少什么? (SO上也有类似的问题。但不幸的是没有答案。) 更新 似乎问题与GNU GCC/ld相关。尝试使用 clang++/LLVM 构建代码,成功了: $ clang++ -Wall -Wextra -lvulkan -o vkExtension vkExtension.cpp vkExtension.cpp:5:14: warning: unused parameter 'argc' [-Wunused-parameter] int main(int argc, char *argv[]) ^ vkExtension.cpp:5:26: warning: unused parameter 'argv' [-Wunused-parameter] int main(int argc, char *argv[]) ^ 2 warnings generated. $ ./vkExtension Vulkan: Extension Count: 20 $ 也更新了问题标题。 我已经解决了这个问题。这是我的第 8 层(使用)问题。 链接参数的库必须在带有GCC/G++的源之后,当然,不能在之前: $ g++ -o vkExtension vkExtension.cpp -lvulkan 完全忘记了GCC/G++的这种行为。抱歉,其他 SO 用户浪费了您的时间。

回答 1 投票 0

wxWidgets 链接器在使用minimal

我遇到了一个有趣的问题,在过去的两个小时里我基本上一直在用头撞墙试图找出答案。我的 GUI 工作正常,直到我决定添加一个...

回答 1 投票 0

C++ Builder 中的“[ilink32] 致命:内存不足”

将 Embarcadero C++ Builder 更新到新版本后,我们的项目突然无法构建。这种情况只发生在我们的一个项目中。对于大多数团队成员来说,构建相同的代码...

回答 3 投票 0

libgcc 链接器错误:libgcc.a 中的隐藏符号 __aarch64_swp1_acq_rel 被 DSO 引用

我正在尝试链接一个我无法控制的共享库。该库有一个未定义的符号(nm 输出): U __aarch64_swp1_acq_rel 这似乎是在 libgcc.a 中定义的: [用户@fedora ~]$ nm -a /...

回答 2 投票 0

“cURL 库执行失败:尽管在基于 ARM 的 Windows Surface 7 上进行了正确的编译和环境路径设置,但未找到‘libcurl-x64.dll’”

我正在尝试使用 cURL 库(我对库很陌生,所以我为我的无知道歉)。我使用命令: g++ -I"C:/Curl/include" distance.cpp -o run -L"C:\Program Files\...

回答 1 投票 0

如何解决PCL链接错误?

编辑:更新了代码 我正在使用 PCL 库从点云生成网格。这是基于 PCL 文档中的贪心三角剖分教程的代码: #包括 #包括...

回答 3 投票 0

链接选项插入在 CMakeLists(Intel OneAPI 编译器)中的 /link 关键字之前

由于 liburctd.lib 和 libmmt.lib 之间存在冲突,我收到链接器错误。为什么我会得到这个完全是另一个问题。 在试图弄清楚这一点时,我想看看是否只是设置 /

回答 1 投票 0

VTK项目报告“未定义的引用”错误

我想在Centos7.9-2009上运行一个简单的VTK8.1.2演示来测试我的项目的VTK包。这是演示: #包括 #包括 #包括<

回答 1 投票 0

链接器命令失败,退出代码为 1,并出现未定义符号错误

我正在尝试使用 xcode 14.3.1 运行 React Native 应用程序。 M2 MacBook pro,npm install 和 pod install 已成功完成。但在运行应用程序时,我收到此错误。反应本机版本是“

回答 1 投票 0

mpi 编译警告隐式声明

今天我使用自制程序在 mi mac 10.9 上安装 mpi mpicc 与 simlpe hello world 程序一起使用,但是如果我尝试这样的事情 #包括 #包括 #包括 今天我使用自制程序在 mi mac 10.9 上安装 mpi mpicc 与 simlpe hello world 程序一起使用,但如果我尝试这样的事情 #include <mpi.h> #include <string.h> #include <stdio.h> #define max 1000 int main(int argv, char *argc[]){ int myrank,nProc,tag,j; char buff [max]; MPI_Status status; tag=0; MPI_Init(&argv,&argc); MPI_Comm_Rank(MPI_COMM_WORLD,&myrank); MPI_Comm_Size(MPI_COMM_WORLD,&nProc); if(myrank==0){ for(j =1 ; j<nProc;j++){ MPI_Recv(&buff,max,MPI_CHAR,j,tag,MPI_COMM_WORLD,&status); printf("Il processo %d dice di chiamarsi %s\n",j,buff); } } else{ switch (myrank){ case 1 : MPI_Send("Franco",max,MPI_CHAR,j,tag,MPI_COMM_WORLD); break; case 2 : MPI_Send("Mena",max,MPI_CHAR,j,tag,MPI_COMM_WORLD); break; case 3 : MPI_Send("Nino",max,MPI_CHAR,j,tag,MPI_COMM_WORLD); break; } } printf("Ciao da %d \n",myrank); MPI_Finalize(); return(0); } 我尝试用以下行编译它: mpicc -o filename filename.c 它给了我这个警告并且没有构建。 nucciampi.c:15:3: warning: implicit declaration of function 'MPI_Comm_Rank' is invalid in C99 [-Wimplicit-function-declaration] MPI_Comm_Rank(MPI_COMM_WORLD,&myrank); ^ nucciampi.c:16:3: warning: implicit declaration of function 'MPI_Comm_Size' is invalid in C99 [-Wimplicit-function-declaration] MPI_Comm_Size(MPI_COMM_WORLD,&nProc); ^ 2 warnings generated. Undefined symbols for architecture x86_64: "_MPI_Comm_Rank", referenced from: _main in nucciampi-zsehoq.o "_MPI_Comm_Size", referenced from: _main in nucciampi-zsehoq.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) 请帮我解决这个问题!!! MPI_Comm_Rank -> MPI_Comm_rank MPI_Comm_Size -> MPI_Comm_size MPI 中的所有例程和常量都有一个明确定义的命名约定,在 MPI 规范的第 2.2 节中进行了描述: 在 C 中,与特定类型的 MPI 对象关联的所有例程应采用 MPI_Class_action_subset 形式,或者,如果不存在子集,则应采用 MPI_Class_action 形式。在 Fortran 中,与特定类型的 MPI 对象关联的所有例程应采用 MPI_CLASS_ACTION_SUBSET 形式,或者,如果不存在子集,则应采用 MPI_CLASS_ACTION 形式。对于 C 和 Fortran,我们使用 C++ 术语来定义 Class。在 C++ 中,例程是 Class 上的方法,名称为 MPI::Class::Action_subset。如果例程与某个类关联,但作为对象方法没有意义,则它是该类的静态成员函数。 请注意,与 Fortran 不同,C 中的符号名称区分大小写。

回答 2 投票 0

尝试“制作”CUDA SDK,ld 找不到库,ldconfig 说可以

我知道还有很多其他与此类似的问题,但其中提出的解决方案都不适合我 基本上,制作 SDK 示例文件时,我得到 /usr/bin/ld: 找不到 -lcuda ...

回答 3 投票 0

用C编写GObject类时需要自己实现“new”方法吗?

我正在尝试按照 GObject 教程来实现我的第一个 GObject 类。到目前为止,我已经想出了这段代码: 火车.h: #pragma 一次 #包括 G_BEGIN_DECLS #定义

回答 1 投票 0

C++ 和 CUDA 名称修饰不一致

我尝试从源代码编译 PyTorch,但遇到了一个非常奇怪的链接错误。经过调查,我发现 C++ 文件中定义的模板化函数及其在 CUDA 中的声明...

回答 1 投票 0

链接 C++ 代码时出现问题

我正在学习如何制作和使用静态库,但我遇到了一些问题。这就是我所做的。 首先,我编写了一些代码并将其放入 String.h 和 String.cpp 文件中。 然后我...

回答 1 投票 0

使用 Bazel 通过 Boost.asio 构建应用程序

我正在尝试使用 Bazel 使用 boost.asio 构建简单的代码: 主程序 #包括 #包括 升压::asio::io_service io_service; 无效listenUDP(嘘...

回答 1 投票 0

链接器抱怨多个定义

我已经盯着这个太久了,可能只是没有看到一些明显的东西。 我正在 Ubuntu 24.04 上使用 Raspberry Pi Zero2 的 /usr/bin/aarch64-linux-gnu-g++-12 交叉编译器进行交叉编译...

回答 1 投票 0

MFC 应用程序迁移到 Visual Studio 2022 - LNK1104 无法打开文件“mfc120.lib”

将 MFC 应用程序迁移到 Visual Studio 2022 时,出现以下错误“LNK1104 无法打开文件 'mfc120.lib'” 我相信它应该链接到“mfc140.lib”或“

回答 1 投票 0

CUDA 合作组:链接错误

在阅读了 CUDA 9 中的协作组之后,我一直在尝试在网格级别进行同步。 我使用的是 Visual Studio 2017、GTX 1060 和 CUDA 9.1。 我修改了我的代码如下: __全局__ 无效

回答 1 投票 0

cmake 链接到 OpenSSL 失败对 openssl 函数的未定义引用

我正在尝试使用 CMake 构建一个链接到 openssl 的项目。 我在链接阶段遇到错误。 即使共享库之一无法找到某些 openssl 函数...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.