linker相关内容
我终于在Ubuntu Xenial x86_64主机上交叉编译并链接了一个二进制文件,以便在Raspberry Pi 4的ARMHF上运行。 我的工具链来自ARM,放在$TOOLCHAIN中。 我的sysroot是放置在$RASPBIAN_ROOT中的循环装载的Raspberry OS映像。 这是一个示例编译行: $TOOLCHAIN/gcc-arm-8.3-2019.03
..
我有这些文件 consumer.cpp消费者.hpp定义.hpp主文件生成文件生产者.cpp生产者.hpp 这是文件defines.hpp #ifndef DEFINES_HPP#define DEFINES_HPP#include #include #include #include #include #incl
..
..
..
我正在 32 位 SLES10 机器上进行构建.使用 GCC 3.4.2 这是一个错误示例 `.L8245' 在 CMakeFiles/myproj.dir/c++/util/MyObj.o 的 `.rodata' 部分中引用:在废弃部分中定义`.gnu.linkonce.t._ZN5boost9re_detail9reg_grep2INS0_21grep_search_predicate
..
我为 Clang 使用哪个链接器? 如果我使用 Clang 或 GNU 链接器(ld) 作为链接器,我得到了大量的错误,就好像我没有链接到标准库一样. g++ $(OBJS) -o $(BINDIR)/obtap 看来我必须使用 g++ 来链接我的 Clang 对象. 解决方案 我运行的是 'clang' 而不是 'clang++',这意味着它没有链接 C++ 标准库.
..
我已经从高处和低处搜索了这个问题的答案.我使用的是 boost 1.48,并且程序非常简单,因为我已将其分解为最简单的形式以解决此问题. #include int main(int argc, char **argv) {返回0;} 从我的 Makefile 中执行的 g++ 命令如下: g++ -m32 -Wall -o mapnik-test
..
所以我在 2 个独立的翻译单元中有这段代码: //a.cpp#include 内联 int func() { return 5;}诠释代理();int main() { printf("%d", func() + proxy());}//b.cpp内联 int func() { return 6;}int proxy() { return func();} 正常编译时结果为1
..
我想将目标文件和静态库合并到一个共享库中,但静态库不应暴露,它只在进入共享库的目标文件中引用.我认为在这种情况下,我不需要使用 -fPIC 编译静态库,但我不知道如何告诉链接器我不会使用静态库中的符号这一事实.为了说明我的问题,请使用以下文件: 文件foo.cpp: #include "static.h"使用命名空间标准;字符串版本信息(){返回静态版本信息();} 文件static.c
..
考虑这个文件,first.cpp,包含一个类定义和使用: #include 结构 Foo{Foo(){ std::cout
..
假设我有 fileA.h,它使用模板函数 SomeFunc() 声明了一个类 classA.该函数直接在头文件中实现(与模板函数一样).现在我在 fileA.C (即不在头文件). 如果我现在从其他代码(可能也来自其他库)调用 SomeFunc(),它会调用通用版本还是专业化版本? 我现在有这个问题,类和函数存在于一个库中,由两个应用程序使用.一个应用程序正确地使用了专
..
我制作了一个程序,它使用两个共享库(我编译过),并且放置如下: /home_directory_where_I_compile_and_run_everything-->/lib/libjson_linux-gcc-4.4.6_libmt.so-->/lib/libre2.so.0 当我编译我的程序时,我将这些库的相对位置传递给链接器,如下所示: g++ ......东西..........
..
我正在使用 Code Blocks IDE 为 Windows 编写 C++ 应用程序.我有兴趣使用以下 XML++ 库:http://libxmlplusplus.sourceforge.net/ 它需要 libxml2 和 glibmm-2.4 库.我下载了每个库的源代码,并通过右键单击“构建选项"==>“搜索目录"选项卡==>“编译器"选项卡将所有标题包含到我的项目中.我在那里指定了头
..
我正在构建一个必须在模拟器和设备上运行的 iPhone 应用程序.但是我使用的是一个外部编译的库,它有一个版本用于模拟器,一个版本用于设备(不同的 CPU). 我该怎么做?我来自 Visual C++,所以我是 Xcode 的新手,但我找不到方法. 编辑,2016 年 3 月:这个问题是在大约 6 年前的 2009 年 7 月提出的.从那以后 Xcode 发生了很大的变化,但我想有
..
我有一个库,它开始在 XCode 4.4 下抛出几个链接器警告.警告类似于“ld:warning:instance method 'methodName:' in category from overrides method from class in" 该框架仍然可以正常工作,我认为编写它的公司会在下一个版本中纠正这个问题,但目前这些警告非常烦人.有什么方法可以在不禁用所有链接器警告的情况
..
我有一个大的 makefile,它构建了几个库,安装它们,然后继续构建链接到这些已安装库的对象.我的麻烦是我想使用“-lfoo -lbar"作为 g++ 标志来链接两个已安装的库,但是依赖关系搞砸了.如果我更改库 foo 所依赖的标头“42.h",那么 make 当然会重建并安装它,但它确实 not 似乎注意到我的对象“marvin"使用了“-lfoo" 并且 marvin 与旧版本保持联系...
..
我目前正在开发一个灵活的 C/C++ 构建框架,我将(希望)很快将其开源.(有关背景信息,请参阅这个问题). 我正在使用以下命令为源/头文件生成#include 文件依赖项. gcc -M -MM -MF 有没有一种方法可以巧妙地推断 可执行文件 的链接器(.o 文件)依赖项(在我的情况下,单元测试 + 目标平台的主要可执行文件)使用 gcc/GNU 实用程序以与上述类似的方式?目前,该
..
我的 C 代码中有一个函数被隐式调用,并被链接器转储.我怎样才能防止这种现象? 我正在使用 gcc 和链接器标志 -gc-sections 进行编译,我不想从标志中排除整个文件.我尝试使用属性:“used"和“externally_visible",但都没有奏效. void __attribute__((section(".mySec"), nomicromips, used)) func
..
我复制了 dlg 框类的现有标题(使用 dlg 类向导/mfc 向导创建).在我将 cpp 文件添加到项目之前,一切似乎都很好.现在我得到一些 mfc 魔术方法的奇怪链接错误: 错误 LNK2001:未解决的外部符号“公共:虚拟结构CRuntimeClass * __thiscallDlgGapWindow::GetRuntimeClass(void)const"(?GetRuntimeCl
..
我正在尝试使用 Visual Studio 2010 链接 C++ 中的静态库.麻烦的是,库(和随附的标头)中有很多 MFC 对象.我想在不重新编译我的项目以包含 MFC 或重新编译库以不使用 MFC 的情况下调用库的函数之一.这篇 codeproject文章似乎暗示如果我这样做是可能的在我的项目中将函数定义为外部的(使用“extern"关键字). 但是,我没有运气.无论我尝试什么,我都会收
..