linker相关内容

我可以通过链接此 dl 从动态库中加载函数,但如果不链接此 dl,我无法在代码中使用“dlsym"加载它

我在 fedora 116 上使用 gcc/g++,我的想法是: c 程序 ->加载 C++ 动态库 A ->加载c++动态库B c++动态库B是第三方提供的,我不能修改. 当编译 c++ 动态库 A 与链接 c++ 动态库 B 时,A 可以在 B 中找到符号.但是当我使用 'dlsym' 在 A 代码中加载 B 函数(不是链接)时,A 告诉我 /path/to/B.so:未定义符号: ..
发布时间:2022-01-11 15:26:46 服务器开发

不完整类型 Qt 的无效使用

我有个小问题: finddialog.h #ifndef FINDDIALOG_H#define FINDDIALOG_H类QDialog;类 QWidget;QLineEdit 类;类 QPushButton;类 QCheckBox;QLabel 类;类 FindDialog:公共 QDialog{Q_OBJECT上市:FindDialog(QWidget *parent);私人插槽:无 ..
发布时间:2022-01-11 15:26:29 C/C++开发

SFML:对 _imp_ 的未定义引用

我正在尝试使用 SFML 创建 C++ 应用程序.按照教程,为 Windows 安装了 MinGW.我的项目在其根文件夹中有一个 main.cpp 文件,并且 SFML 包含在 lib/sfml 中(相对于 main.cpp). 我可以使用命令g++ -c main.cpp -g -o build/debug/game.o -Ilib/sfml/include 毫无问题地编译 但是当我尝 ..
发布时间:2022-01-11 15:26:15 C/C++开发

静态链接 LAPACK

我正在尝试发布一些软件,目前正在编写构建过程的脚本.我被困在我从未想过的事情上,在 x86_64 linux 上静态链接 LAPACK.在配置期间 AC_SEARCH_LIB([main],[lapack]) 工作,但 lapack 单元的编译不起作用,例如 undefiend reference to 'dsyev_' --no lapack/blas 例程未被注意到. 我已经确认我已经安 ..
发布时间:2022-01-11 15:25:28 其他开发

链接器实际上对多重定义的“内联"函数做了什么?

在 C 和 C++ 中,具有外部链接的 inline 函数当然可以在链接时有多个可用定义,假设这些定义都(希望)相同.(我当然指的是使用 inline 链接规范声明的函数,而不是编译器或链接时间优化器实际内联的函数.) 那么,常见的链接器在遇到函数的多个定义时通常会做什么?特别是: 是否所有定义都包含在最终的可执行文件或共享库中? 函数的所有调用是否都与同一个定义相关联? 一个或多 ..
发布时间:2022-01-11 15:25:21 C/C++开发

与 gcc 与 g++ 链接有什么区别?

gcc和g++的链接过程有什么不同吗? 我有一个大型 C 项目,我刚刚将部分代码切换到 C++.该代码尚未使用标准 C++ 库,因此暂时不需要 -llibstdc++. 解决方案 主要区别在于(假设文件被检测为 C++)g++ 设置了与 C++ 标准库链接所需的标志.它还可以设置异常处理.我不会相信仅仅因为您的应用程序不使用标准库而编译为 C++ 时不需要它(例如默认异常处理程序). ..
发布时间:2022-01-11 15:25:14 C/C++开发

包括 .cpp 文件?

可能重复: 为什么模板只能在头文件中实现? 我最近一直在尝试使用 C++.目前我正在尝试编写一些我确信每个人都至少做过一次的事情:一个简单的 LinkedList 类.代码已完成,但我不知何故无法编译它.我一直在谷歌搜索,似乎我将目标文件链接错了.我的代码基本上是这样的: test.cpp #include "linkedlist.h"主函数(){链表列表;//做一点事} ..
发布时间:2022-01-11 15:25:06 C/C++开发

在头文件中声明和定义且仅在其 cpp 文件中使用的变量的多重定义错误

我正在将编写为一个芯片编译的代码转移到另一个芯片上. 出现的一个问题是多个定义错误.其中一些似乎是由于第一个芯片的链接器让我在跨多个源文件使用变量时懒得声明变量 extern.我以前根本没有使用 extern(在 something.h 中声明和定义一个变量,在 something.cpp 和包含 something.h 的其他源文件中使用它)并且它编译和链接得很好. 我相信我已经很好 ..
发布时间:2022-01-11 15:24:59 C/C++开发

如何在编译/链接时使用地址进行计算?

我编写了一些代码来初始化 IDT,它将 32 位地址存储在两个不相邻的16 位半.IDT 可以存储在任何地方,您可以通过运行 LIDT 指令告诉 CPU 在哪里. 这是初始化表格的代码: void idt_init(void) {/* 不幸的是,我们不能把它写成循环.第一个选项,* 用地址初始化 IDT,在这里循环它,并且* 重新初始化描述符不起作用,因为分配了一个*一个uintptr_t ..
发布时间:2022-01-11 15:24:53 其他开发

C中的分层链接

我想以分层方式链接三个文件. //a.cint fun1(){...}int fun2(){...}//b.c外部 int 参数;int fun3(){...//这里使用参数}//main.cint 参数 = 1;int main(){...//使用 fun1 fun2 fun3} 所以,我首先将三个文件分别编译成目标文件a.o、b.o和main.o.然后我想将 a.o 和 b.o 组合成另一 ..
发布时间:2022-01-11 15:24:45 其他开发

linux/gcc:来自 C/C++ 程序内部的 ldd 功能

有没有一种简单有效的方法来知道给定的动态链接 ELF 缺少运行所需的 .so,所有这些都来自 C 的 内部/C++ 程序? 我需要一个功能与 ldd 有点相似的程序,而不是尝试执行 ELF 来找出系统中的(满足/未满足)依赖关系.也许通过某个库询问 ld-linux.so 实用程序?(我是linux这部分的新手=) 注意:阅读 ldd 的源代码对我的意图不是很有帮助:似乎 ldd 实际 ..
发布时间:2022-01-11 15:24:31 服务器开发

创建全局变量会导致链接器错误

我有一个 MFC 应用程序 AVT_testapp,并且在头文件 (AVT_testappDlg.h) 中,我试图在所有函数、类等之外创建一个变量,以使其成为全局变量.每当我尝试这样做时(比如我尝试 int x = 7),我都会收到错误消息: 1>AVT_testappDlg.obj : 错误 LNK2005: "int x" (?x@@3HA) 已经定义在AVT_testapp.obj1>.. ..
发布时间:2022-01-11 15:24:22 C/C++开发

将链接器选项添加到 Code::Blocks

当我尝试在我的 Win 7 x64 机器上运行使用 Code::Blocks 编译的可执行文件时,它说它无法运行,因为缺少 libgcc_s_dw2-1. 我找到了一个解决方案,将库包含在链接器选项中.(这是我从中得到的参考:http://forums.codeblocks.org/index.php?topic=16748.0;prev_next=prev.看最后一篇) 问题是,当我 ..
发布时间:2022-01-11 15:24:13 C/C++开发

如何将动态 dll 转换为静态库?

我写了一个程序helloworld.exe;它取决于 a.dll.我没有 a.dll 的源代码,它是一个动态 dll.如何将其更改为静态库,以便将其链接到 helloworld.exe? 解决方案 抱歉,没有直接的办法.DLL 是完全链接的可执行格式文件,其中静态库是收集在一起的单独对象文件的集合.通过一些工作,您可以将静态库转换为 DLL,但反向操作并非易事(委婉地说). ..
发布时间:2022-01-11 15:24:06 C/C++开发

Mac OS X下安装和使用QWT

我目前正在尝试让 QWT 6.1.0 在 MAC OS X 10.7.5 下运行.我按照这里的说明进行操作 --> http://qwt.sourceforge.net/qwtinstall.html我没有更改配置文件中的某些内容. 所以一切正常,但现在我想在我自己的项目中使用 qwt-libary.我将以下行添加到我的 .pro INCLUDEPATH +=/Users/userX/Do ..
发布时间:2022-01-11 15:24:00 其他开发

从 Fortran 调用 C++(链接问题?)

我真的需要你的帮助!我在最后期限内,我正在努力学习足以完成一些工作.一个多星期以来,我正在处理一个看似简单的问题,但我无法成功地在线实施解决方案. 长话短说:我需要从 F77 调用 C++ 代码.我正在用 g++ 和 gfortran 编译.我是makefile的新手.当这些代码被编译为它们各自程序的一部分时,它们没有错误(我从我的 C++ 代码中获取一个函数,而不是 main(),并尝试将 ..
发布时间:2022-01-11 15:23:52 C/C++开发

链接到库时包含和链接有什么区别?

包含和链接到底有什么作用?有什么区别?为什么我需要同时指定它们?当我写#include math.h,然后写-lm编译,#include math.h和-lm 分别做什么? 据我了解,在链接库时,您需要它的 .h 文件和它的 .o 文件.这是否表明 #include math.h 意味着接受 .h 文件,而 -lm 接受 .o 文件? 解决方案 这是因为头文件只包含声明,而 .o 文 ..
发布时间:2022-01-11 15:23:42 其他开发

freeglut 错误 LNK1104

在我的项目中,我想使用来自非官方 opengl sdk 的 freeglut 库. 我使用 Premake 为 vs2010 生成构建文件.然后我构建了所有库(调试).在我的项目中,我为 freeglut 设置了 Additional Include Directories、Additional Library Directories.在其他依赖项中,我添加了 freeglutD.lib. ..
发布时间:2022-01-11 15:23:33 其他开发