所有问题: [linker]
476 个问题
LD链接器:目标地址对齐,但ROM中的地址不对齐
我有一个驻留在Flash中的程序,它将从Flash运行。在程序的早期,数据段从flash复制到ram。我正在使用一个(简化的)链接脚本: .text : { *(.text) } > FLASH _etext = .; PROVIDE (etext = .); .rodata : { PROVIDE(__COPY_DATA_START__ = .); *(.rodata) } > ram AT>flash PROVIDE (__SDATA2_START__ = .); .sdata2 : { *(.sdata2) } ...
c ++模板类未链接
template<typename AT> class growVector { int size; AT **arr; AT* defaultVal; public: growVector(int size , AT* defaultVal); //Expects number of elements (5) and default value (NULL) AT*& operator[](unsigned pos); int length(); ...
从可执行文件中提取静态链接的库
我不确定这是否可行,但给出了一个可执行文件(foo.exe),其中包含许多已静态链接的库。 是否有任何软件可以从该文件中提取可执行文件中的.lib(或.a)? 谢谢。
将模板化的C ++类拆分为.hpp / .cpp文件-有可能吗?
尝试编译在.hpp和.cpp文件之间分割的C ++模板类时遇到错误: $ g++ -c -o main.o main.cpp $ g++ -c -o stack.o stack.cpp $ g++ -o main main.o stack.o main.o: In function `main': main.cpp:(.text+0xe): undefined reference to 'stack<int>::stack()' main.cpp:(.text+0x1c): undefined reference to 'stack<int&g...
xerces-c 2.8:加载共享库时出错
我正在尝试编译在Red Hat Linux上的HP UX服务器上运行的程序。 它使用xerces-c库来解析xml文件。编译正常,但是当我尝试运行它时,出现以下消息 ./ a.out:加载共享时出错 库:libxerces-c.so.28:不能 打开共享对象文件:无此文件 或目录 我编写了一个非常简单的程序来尝试了解发生了什么: #include <xercesc/util/PlatformUtils.hpp> #include <xercesc/util/TransService.hpp> #include <xercesc...
MFC CRT订单链接器问题
我确切地遇到了这里描述的问题(尝试将MFC添加到我的项目时出现了这些链接器错误): http://support.microsoft.com/?scid=kb%3Ben-us%3B148652&x = 8&y = 9 但是-如果我按照解决方案输入 nafxcwd.lib;libcmtd.lib 进入“忽略库”以及“其他依赖项”,那么我会得到一个 严重错误LNK1104:无法打开文件“ nafxcwd.lib;” 可能是什么问题?谢谢!
C ++未解析符号
在链接我的项目时出现未解决的符号错误。我正在链接到外部库,是的,我已经正确设置了配置,但是在调试时,它会为外部库中的每个类输出以下错误: error LNK2001: unresolved external symbol __CAP_EXIT_Function proj使用与外部库相同的运行时dll,并链接到lib的调试版本。 关于该去哪里的任何线索? BTW,我正在使用VS2008 谢谢
链接器功能定义代表什么?
升级SDK时出现链接器错误。 在.lib文件中,我们可以看到旧的函数定义是: [email protected]@[email protected]@[email protected] 但是,新的.lib文件对同一功能的定义稍有不同: [email protected]@[email protected]@[email protected] 更改是_W而不是G。 我不知道该字符串实际代表什么。我假设编译器在字符串中指示其编译时配置。我说得对吗?
链接器错误:iPhone单元测试包引用了应用程序类
从已经开发的应用程序开始,我执行了 iPhone开发指南–单元测试应用程序 中的说明。 我可以在设备上运行的应用程序样式测试中成功包含和使用App的类,并将其结果输出到控制台。 如果我添加以下代码行: STAssertTrue([viewController isKindOfClass:[LoginViewController class]], @"Top view controller is not LoginViewController"); 生成以下构建错误: Undefined symbols: "_OBJC_CLASS_$_LoginViewControl...
修改dll导出(符号表)。我想混淆函数名称
我有一个我要更改符号名称的第三方dll。这可能吗?我不想让竞争对手知道我的产品使用什么组件。我没有dll的来源。
我们如何通过链接阶段而仍然错过符号?
操作系统:AIX 5.3。 编译器:xlC_r 构建系统为:“ Unix Makefiles” 我们的应用程序使用几个静态( .a)库和几个共享的( .so)库。 构建过程成功通过(我们确实收到了一些重复的符号警告)。 但是当我们尝试执行时,会遇到符号丢失错误。 注意:我们没有使用dl在运行时加载共享库。 我们错过了什么吗? 我们怎么会通过链接阶段而仍然错过符号?
未定义的符号。ld:找不到符号
除此未定义的符号错误外,一切正常: bash-3.2$ make g++ -Wall -g solvePlanningProblem.o Position.o AStarNode.o PRM.o PRMNode.o Worl.o SingleCircleWorld.o Myworld.o RECTANGLE.o CIRCLE.o -o solvePlanningProblem `Undefined symbols: "Obstacle::~Obstacle()", referenced from: Myworld::~Myworld()in Myworld.o ...
如何使用link.exe进行静态链接
我一直在尝试使用Visual Studio 2008命令在Windows上静态链接到名为 Poco 的C ++库。线工具。 我用以下程序构建程序: cl /I..\poco\lib /c myapp.cpp link /libpath:..\poco\lib myapp.obj PocoNet.lib 这将导致在运行时需要PocoNet.dll和PocoFoundation.dll的exe。 我花了一些时间阅读Windows中的链接,并了解到cl /MT静态链接到标准库,而cl /MD动态链接。 我尝试指定/MT,但这似乎并没有改变。我的应用仍然需要Poco DLL。 (...
如何在Visual C ++中跟踪到外部编译的库
我在Windows框中构建了非dll版本的OpenSSL。按照说明,我修改了构建脚本以包括调试符号。我可以很好地反对他们,他们就跑了。但是,当我尝试从我的cpp代码中进入openssl函数时,它只是跨步而已。我知道这是一个完全菜鸟问题,但是我该如何解决?我拥有所有的源代码和标头,但我认为必须缺少魔术调用才能告诉Visual Studio它们在哪里。等等。 谢谢! Mac-guy在Windows操作系统中遭受痛苦
ns_initparse的链接器错误
代码在这里 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <netinet/in.h> #include <resolv.h> int main (int argc, char *argv[]) { u_char nsbuf[4096]; char dispbuf[4096]; ns_msg msg; ns_rr rr; int i, j, l; if (argc < 2) { ...
C ++ Visual Studio 2008链接问题
当我构建项目时,它可以很好地编译,但是在链接时会引发大量的LNK错误!错误列表中出现错误LNK2001,错误LNK2005,错误LNK2019 >Linking... 1>MultiCatAttributeInfo.obj : error LNK2019: unresolved external symbol "public: class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> &...
在C ++中修剪静态库
我试图通过构建一个静态库来公开一个定义明确的类,然后在构建的库中附带一些头文件,这些头文件定义了该类以及使用该类所需的接口。我已经在工作,但是我遇到的问题是图书馆巨大。它具有整个项目中的每个目标文件,我只需要一个子集。如果我制作一个简单的main.cpp文件并包含并使用该单个类,那么我得到的输出文件仅与我正在使用的库的20%一样大。有没有办法告诉链接器从给定位置开始并修剪可执行文件中的其他所有内容? 编辑:我忘了提到我在cygwin和linux上使用gcc(尽管我也希望使用与Visual Studio兼容的解决方案,我们通常将其用于开发,但主要部署在linux上)
如何构建同时需要libstdc ++。so.5和libstdc ++。so.6的应用程序?
我想以一个重要的提示作为开头,即我不是C / C ++程序员,并且对库的链接在C中的工作原理了解得很少。 / p> 我们的代码使用libstdc ++。so.6(我认为gcc 3.4)。我们有使用libstdc ++。so.5(我认为是gcc 2.something或3.2)的第三方预编译(封闭源)库。这是在Linux上。我们同时具有第三方库的.a和.so版本。 是否可以使用第三方库来构建我们的应用程序?怎么样?是否可以在没有安装libstdc ++。so.5的机器的情况下构建/运行我们的应用程序? 如果我忘记了一些关键信息,请告诉我-我几乎不知道与这些东西有什么关系。我意识...
如何从Visual Studio获取确切的编译器命令行?
我必须将DLL的构建从Visual Studio中的构建移植到另一个构建系统。DLL解决方案不是我自己做的,它有很多修改过的命令行开关等。我已经从Visual Studio的复制了编译器/链接器选项。 项目属性->配置属性-> C / C ++->命令行 项目属性->配置属性->链接器->命令行 但是,当我从其他构建工具构建DLL(并且我还尝试了一个简单的批处理文件)时,DLL的大小略有不同,有时在使用DLL时会导致崩溃(vis studio无法做到)。 所以我的问题是: 比vis studio属性页面中的命令行,有没有更好的方法来查看确切...
有没有办法让gcc输出原始二进制文件?
是否有一组命令行选项可以说服gcc从自包含的源文件生成平面二进制文件?例如,假设foo.c的内容为 static int f(int x) { int y = x*x; return y+2; } 没有外部引用,没有要导出到链接器的内容。我想获得一个仅带此功能机器说明的小文件,而无需任何其他修饰。有点像(DOS).COM文件,但32位保护模式除外。
是否可以使用Linux clone()系统调用在同一地址空间中运行多个应用程序?
如果没有将CLONE_VM标志传递给clone(),则新进程将与原始进程共享内存。可以使用它来使两个不同的应用程序(两个main())在同一进程中运行吗?理想情况下,这就像使用CLONE_VM调用clone()然后调用exec()一样简单,但是我知道它可能涉及更多。至少,我假设需要将生成的应用程序编译为可重定位(-fPIC)。我意识到我总是可以将应用程序重新编码为库,并创建一个主应用程序,将其他“应用程序”生成为线程,但是我很好奇这种方法是否可行。
提升lib构建配置的变化
我是新来的提升者-您能告诉我黑白有什么区别吗? boost lib的以下变体以及在这种情况下我需要链接到哪一个? libboost_unit_test_framework-vc80-1_35.lib libboost_unit_test_framework-vc80-gd-1_35.lib libboost_unit_test_framework-vc80-mt-1_35.lib libboost_unit_test_framework-vc80-mt-gd-1_35.lib libboost_unit_test_framework-vc80-mt-s-1_35.l...
ld64 -s strip输出标志-“忽略”,但不是真的吗?OS X
我很无聊,正在玩gcc的各种选择,看看我能产生多少大小的二进制文件。 我在ld64中找到了-s标志,据认为该标志在可执行文件中不包含符号表信息。ld64的联机帮助页上说该标志被忽略了。 gcc的联机帮助页上说这是一个链接器选项(对我而言,这意味着它将仅在被调用时在ld64上启用-s标志),并且没有提及被忽略的情况。 尽管如此,它似乎并没有被忽略... [email protected] ~/bin/c> cat small.c int main(void) { return 1; } [email protected] ~/bin/c> gcc -Wall s...
如何使用MacPorts降级动态库?
我的py-mysql很糟糕,因为我已经升级了MySQL,将libmysqlclient_r.15.dylib替换为libmysqlclient_r.16.dylib。如何找到并找回旧版本? 编辑:我发现要安装旧版本的MySQL,我需要执行@,但是我仍在寻找查找旧版本的方法。
带有模板编译错误的C ++类
我不是经验丰富的C ++程序员,编译时遇到问题。我有一个使用模板的堆类: template <class T> class Heap { public: Heap(const vector<T>& values); private: vector<T> d; // etc. }; 然后在一个单独的实现文件中: template <class T> Heap<T>::Heap(const vector<T>& values) { d = values; f...
另一个单元测试/代码覆盖率问题。我的方法理智吗?
这是另一个单元测试问题。我正试图从许多地方汲取有关如何进行的知识,我想从这里的专家队伍中总结出我目前的理解。 假定一个项目,除opengl funkiness以外的所有依赖项都静态链接(c运行时除外) 到目前为止,我目前的理解是 进行单元测试仅测试类的公共接口是可以的,因为最终类是最易于测试的单元。可以从那里找出问题(在冒犯性的类内部),并且一个太复杂而难以调试的类(需要对其内部结构进行单元测试)是将其分解的一个很好的选择。 从Visual Studio的角度来看,这种做法可以在自己的项目中编写单元测试。 一个代码覆盖工具(例如CoverageMeter)安装在主项目中,并...