基本功能上未解析的外部符号

Unresolved external symbol on basic function

提问人:mmd 提问时间:6/15/2023 更新时间:6/15/2023 访问量:31

问:

使用 1 个 cpp 文件构建项目时发生构建错误LNK2019



namespace foo {

    __declspec(dllimport) void Print();

}


void main()
{
    foo::Print();
}

foo 被定义。

标头(在其他文件夹中):

#pragma once

namespace foo {

    __declspec(dllexport) void Print();

}

严重性代码说明 项目文件行抑制状态 错误LNK2019未解析的外部符号“__declspec(dllimport) void __cdecl foo::P rint(void)”(_imp?Print@foo@@YAXXZ) 在函数 main sb 中引用 C:\Users\user\source\repos\foo\sb\Application.obj 1

上下文(如果需要):遵循 VS2017 指南。我不知道是否有什么变化。

C++ LNK2019 LNK

评论

0赞 Dave S 6/15/2023
您是否将实现 foo 的 lib 文件添加到此项目中?
0赞 mmd 6/15/2023
@DaveS它不是应该在我构建它时生成的吗?
2赞 Dave S 6/15/2023
你说“header(在其他文件夹中):” -- 所以你有 2 个文件夹,一个创建一个 DLL,这个使用 DLL?一个项目创建一个 lib 文件,另一个项目需要将路径添加到创建的 lib 文件才能使用它。光有H文件是不够的,你需要H + LIB。learn.microsoft.com/en-us/cpp/build/......
0赞 Tim Roberts 6/15/2023
右。编译器在生成 DLL 时生成了库,但它不在 EXE 项目可以找到它的位置。
0赞 drescherjm 6/15/2023
遵循 VS2017 指南。我不知道是否有什么变化。不,创建 dll 已经 20 多年了。我的建议是从这个Microsoft教程开始:https://learn.microsoft.com/en-us/cpp/build/walkthrough-creating-and-using-a-dynamic-link-library-cpp?view=msvc-170

答: 暂无答案