问题标签 [unresolved-external]
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++ - 具有显式模板实例化的未解决的外部。声明语法是什么?
这是一些简化的代码来演示我遇到的问题。
我有一个模板函数,我只想编译某些固定的实例。
函数声明如下:
定义是:
而且,一个示例用法是:
尝试编译它会导致链接错误,大致如下:
main.obj : 函数 main 中引用的未解析的外部符号“int square(int)”
我了解问题所在:我的显式模板实例化的函数签名与头文件中的函数签名不匹配。
请问显式模板实例的(前向)声明的语法是什么?我不希望转发声明模板定义,或将模板定义移动到头文件中。
对于它的价值,我确实有一个解决方法,即使用包装函数,将以下内容添加到上述文件中:
编译并按预期工作。但是,这对我来说似乎是一个黑客行为。在 C++ 和模板语法中应该有比这更优雅的东西。
任何帮助或提示将不胜感激。
c++ - 未解析的外部符号
我收到一个链接错误,我不确定它指的是什么。
这是错误
1>Main.obj : 错误 LNK2019: 未解析的外部符号“public: void __thiscall BinaryHeap,class std::allocator > >,class Comp,class std::allocator > > >::insert(class Item,class std::allocator > > const &)" (?insert@?$BinaryHeap@V?$Item@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@V ?$Comp@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@@@@QAEXABV?$Item@V?$basic_string@DU?$char_traits @D@std@@V?$allocator@D@2@@std@@@@@Z) 在函数“public: void __thiscall PriorityQueue,class std::allocator > >::insertItem(int,class std: :basic_string,class std::allocator > const &)" (?insertItem@?$PriorityQueue@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@ @QAEXHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
代码相当长,但是如果你想让我发布它,我会的。
谢谢
c++ - 继承接口时未解析的符号
这里是深夜,我要疯了,试图解决链接器错误。
如果我有以下抽象接口:
我像这样实例化它:
为什么链接时出现以下错误?
IArpPacketBuilder
是一个抽象接口,所以只要我在具体(派生)接口中定义构造函数和析构函数就可以了,不是吗?好吧,看来不是。
c++ - 虚函数上未解析的外部符号
这些类中的每一个都位于单独的 dll 模块中:
在其他.cpp 中:
包含与 Base.lib 的派生链接的模块(未显示导出/导入指令)。包含 Other.cpp 的模块与 Derived.lib 链接,但不与 Base.lib 链接。到目前为止,一切正常。
但是,如果我将 Base::bar() 更改为虚拟并且不对 Derived 进行更改,则链接器在链接 Other.dll 时会抱怨:
我发现的唯一解决方案是在 Derived 中覆盖 Base::bar() 或让 Other.dll 也与 Base.lib 链接。这两种解决方案都是不需要的,因为它们会在服务器更改时添加客户端要求。
关于在这种情况下访问/定义基类虚拟方法的更好方法的任何想法?
c++ - 链接对象中奇怪的未解决的外部错误
使用 Visual Studio 10 C++,我遇到了奇怪的链接错误。由于某种原因,对全局对象的引用不会链接到该全局对象。它告诉我一个符号是未定义的,但是当我让它查看 .cod 文件时,符号就在那里,就像白天一样。
错误:
但是主 cpp 文件的 .cod 文件显示了全局符号的声明和分配:
那么为什么静态库的 _pFTModule 不匹配我的源文件中的全局符号呢?
编辑:我从命令行运行 msbuild:
我注意到最后只有一个 .obj 文件。项目中有两个 .cpp 文件。并且 MSBUILD 确实构建了这两个文件。那么为什么不将两个文件都传递给链接器。.vcxproj 文件不会以不同方式处理 .cpp 文件。为什么 MSBUILD 不在链接步骤中包含这两个文件?
c++ - boost::thread & 成员函数
我在尝试使用 boost::thread 时遇到了这个问题:
未解析的外部符号:
有人有什么主意吗?
c++ - 'extern' 关键字的问题
我在 cpp 文件中有一组全局变量和一个方法。
在头文件中,我使用 extern 关键字显式声明了它们。我的问题是当我在另一个 C++ 文件中包含头文件时,我不能使用外部变量和方法。它给出了一个链接器错误,说错误 LNK2001:方法和变量的未解析外部符号。我在这里做错了什么??
PS: DoStuff() 方法填充变量。所有头文件和 cpp 文件都在同一个项目文件夹中。
谢谢你!
c++ - 使用 Direct2D 无法解析的外部符号
我正在尝试从此处下载并构建“WIC Image Viewer usign Direct2D” ,但是当我构建我的解决方案时,我遇到了 56 个错误,如下所示:
- 错误 1 错误 LNK2019:未解析的外部符号 __imp__CoUninitialize@0 在函数 _wWinMain@16 WICViewerD2D.obj 中引用
- 错误 2 错误 LNK2019:未解析的外部符号 __imp__DispatchMessageW@4 在函数 _wWinMain@16 WICViewerD2D.obj 中引用
- 错误 3 错误 LNK2019:未解析的外部符号 __imp__TranslateMessage@4 在函数 _wWinMain@16 WICViewerD2D.obj 中引用
等等。这肯定是我的 Visual Studio 设置中的内容,因为这段代码不应该开箱即用吗?我安装了 Windows SDK v7.0。
c++ - 为什么这个虚拟析构函数会触发一个未解析的外部?
考虑以下:
在Xh 中:
X.cpp:
尝试构建它(我正在使用 .dll 目标来避免丢失主服务器上的错误,并且我正在使用 Visual Studio 2010):
错误 1 错误 LNK2001:未解析的外部符号“私有:虚拟 __thiscall X::~X(void)”(??1X@@EAE@XZ)
但是,小的修改会导致构建成功:
Xh:
或者
Xh:
当 .dtor 是虚拟的或 .ctor 未内联时,是什么导致链接器中未解析的外部?
编辑:
或者,也许更有趣的是,如果我将析构函数设为非虚拟,或者如果我内联构造函数,为什么我没有得到未解析的外部?
c++ - 模板类 + 运算符 + 朋友 = 未解决的外部
我有一个名为分数的类,我将一些运算符声明为朋友。我事先声明了友元运算符,正如http://www.parashift.com/c++-faq-lite/templates.html#faq-35.16告诉我的那样,但它只修复了 +、-、* 和 /。<< 和 >> 仍然不起作用。
和班级: