问题标签 [linker]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 链接问题 (VC6)
我打开了一个旧工作区,它是一个库及其测试工具。它过去可以正常工作,但现在不能,旧版本的代码也不能正常工作,出现相同的错误。我试过重新创建项目,这也会导致同样的错误。项目设置中似乎没有任何问题,并且生成的代码在主应用程序中有效。
我已经删除了大部分文件并将其降至最低限度以生成错误。不幸的是,我无法发布该项目,因为它用于生产代码。
我得到的 LNK2001 链接器错误通常意味着我已经离开了一个库或忘记实现一个虚函数。然而,这是标准模板库的一部分 - 并且是一个标题。
在 IOCompletionPort.obj 中列为有问题的代码实际上并没有std::string
直接使用,而是调用了一个类:Comms::Exception
接受 astd::string
和GetLastError
or的值WSAGetLastError
。
错误()中提到的函数GetMessage
已实现,但它是一个虚函数,因此其他类可以在需要时覆盖它。但是,编译器似乎已将其作为 Ansi 版本,但我在设置中找不到任何可以控制它的选项。我怀疑这可能是问题所在,但由于图书馆的选择方式很少,我无法确定。但是,这两个项目都在编译器选项中指定 _MBCS。
--------------------配置:TestComms - Win32 调试--------------------链接... Comms.lib(IOCompletionPort.obj):错误 LNK2001:无法解析的外部符号“公共:虚拟类 std::basic_string,class std::allocator > __thiscall Comms::Exception::GetMessageA(void)const”(?GetMessageA@ Exception@ Comms@@UBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) Debug/TestComms.exe : 致命错误 LNK1120: 1 unresolved externals 执行错误链接.exe。
TestComms.exe - 2 个错误,0 个警告
有什么建议么?我早上的大部分时间都为此而迷失,也不想下午的大部分时间都迷失。
linker - 我需要将我的混合模式应用程序链接到哪些库?
我正在将 .NET 支持集成到我们的 C++ 应用程序中。
这是一个老式的 MFC 应用程序,有 1 个额外的文件使用“/clr”选项编译,该选项引用 CWinFormsControl。
我不允许删除链接器标志“/NODEFAULTLIB”。
(我们有自己的构建管理系统,而不是 Visual Studio。)
这意味着我必须指定所有必要的库:VC 运行时和 MFC。
其他编译器选项包括“/MD”
接下来:我不能使用链接器标志“/FORCE:MULTIPLE”而只是添加所有内容:
我正在寻找一组不重叠的库。
c++ - 调试链接错误的最佳实践
在使用 C++ 构建项目时,我发现调试链接错误很棘手,尤其是在获取其他人的代码时。人们使用什么策略来调试和修复链接错误?
c++ - 如何使用 Visual Studio Express 2005 制作完全静态链接的 .exe?
我目前首选的 C++ 环境是免费且非常出色的 Microsoft Visual Studio 2005 Express 版本。我不时将发布的 .exe 文件发送给其他人,结果令人满意。然而最近我做了一个令人不安的发现,令人愉悦的结果是基于我想要的更多运气。试图在旧的(2001 年的老式,未经过严格更新的)XP 机器上运行其中一个程序,只给我一个讨厌的“系统无法运行 x.exe”(或类似的)消息。
一些谷歌搜索显示,使用此工具集,即使指定静态链接也会导致一个简单的 hello-world.exe 实际上依赖于额外的 .dll 文件(msvcm80.dll 等)。一个非常复杂的版本计划系统(清单文件有人吗?)然后不会让 .exe 在没有完全正确的 .dll 版本的情况下运行。我不想要或不需要这些东西,我只想要一个老式的自包含 .exe,它只执行最低公分母 Win32 操作并在任何旧的 win32 操作系统上运行。
有谁知道它是否可以用我现有的工具集做我想做的事情?
谢谢你。
c# - 在 C# 中静态链接
我正在为 CMS 开发一个模块。该模块作为类库 DLL 分发。
我有几个我想在这个模块中使用的实用程序库。无论如何我可以静态链接这些库,这样我就不必分发几个 DLL(从而分别分发我的实用程序库)?
我希望只有一个 DLL。
c++ - 混合 C/C++ 库
gcc 是否可以链接到使用 Visual C++ 创建的库?如果是这样,这样做是否会产生任何冲突/问题?
gcc - 为什么链接库的顺序有时会导致 GCC 出错?
为什么链接库的顺序有时会导致 GCC 出错?
c++ - 有没有办法从构建脚本输出中解析依赖树?
我有一个继承的项目,它使用构建脚本(不是 make)来构建项目并将其与各种库链接。
当它执行构建时,我想解析构建输出以确定链接到最终可执行文件的实际静态库是什么和在哪里以及它们来自哪里。
该脚本正在使用 GNU 工具进行编译和链接。
c++ - 如何以图形方式显示 .map 文件中的内存布局?
我的 gcc 构建工具链生成一个 .map 文件。如何以图形方式显示内存映射?
visual-studio-2008 - VS 2005 & 2008 库链接
将使用 VS 2005 编译的静态库 (.lib) 与使用 VS 2008 编译的程序链接是否正确?库和我的程序都是用 C++ 编写的。该程序在 Windows Mobile 6 Professional 模拟器上运行。
这似乎有效,没有链接错误。但是程序在启动过程中崩溃,因为链接库中发生了奇怪的事情。例如,lib 可以返回一个大小为大负数的字符向量。
用 VS 2005 编译程序就没有这样的问题了。
更奇怪的是,问题仅在使用发布配置进行构建时。使用调试配置编译时不会出现问题。