【发布时间】:2021-08-17 18:50:09
【问题描述】:
我想构建一个小型可重用库。 我有 2 个项目,项目 A 用于构建库函数(必须是动态库),项目 B 用于对其运行测试。
我的问题遇到以下错误: 在项目 B 中,我使用了以下代码:
#include "StdAfx.h"
#include "C:\......\projectA\Ent extension.h" (same folder with "Ent extension.cpp")
void Call_plot()
{
...=fent_select(..);
}
但是,当我构建项目时,我总是遇到错误:
Error LNK2019 unresolved external symbol "class Ent __cdecl fent_select(wchar_t const ,enum Mode)" (?fent_select@@YAPEAVEnt@@PEB_WW4Mode@Db@@@Z) referenced in function "void __cdecl" Call_plot (?Call_plot@@YAXXZ)
我该如何解决这个问题?
谢谢!
【问题讨论】:
-
@StephenNewell:我以错误的方式构建 projectA.lib 吗?我只是编译并将 projectA.lib 添加到链接器 projectB
-
您没有为任何人提供足够的信息来提供比解释此链接器错误的许多常见原因的副本更多的帮助。
-
谢谢大家,原来我错过了__declspec。现在每个功能都按预期工作。
-
通常在使用 msvc 的原生 c++ 中,您需要一个宏,在构建 dll 时计算为
__declspec(dllexport),在使用 dll 时计算为__declspec(dllimport)。相关:https://stackoverflow.com/questions/14980649/macro-for-dllexport-dllimport-switch
标签: c++ linker-errors