Visual Studio 2019 中无法打开文件 "fltkd.lib" 错误

Can not open file "fltkd.lib" error in Visual Studio 2019

#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Box.H>

int main()
{
    FI_Window window(200, 200, "Window title"); // error: FI
    FL_Box box(0, 0, 200, 200, "Hey, I mean, Hello, World! ");
    window.show();
    return Fl::run();
}

我在 VS 2019 中构建上述代码并得到错误代码 LNK1104 |无法打开文件“fltkd.lib”。我按照 Bjarne Stroustrup 和其他在线资源的《使用 C++ 编程原则和实践》一书的建议检查了所有链接器 settings/values,但我仍然遇到错误。 VS 2019 是否有一些不同的设置,或者我是否将 libs 文件放在错误的目录中。

我放置库文件的目录:-

C:\Program Files (x86)\Microsoft Visual Studio19\Community\VC\Tools\MSVC.29.30037\lib

LNK4098: defaultlib 'MSVCRTD' conflicts with use of other libs; use /NODEFAULTLIB:library

如果您编译一个文件使用一种 运行-time 库,而另一个文件使用另一种(例如,调试与零售)并尝试 link 它们,您将得到这个警告。您应该编译所有源文件以使用相同的 运行-time 库。

Project -> Properties -> C/C++ -> Code Generation -> Runtime Library

vc\lib 中存在 4 个版本的 CRT link 库:

libcmt.lib:发布版本 (/MT) 的静态 CRT link 库

libcmtd.lib: 用于调试构建的静态 CRT link 库 (/MTd)

msvcrt.lib: CRT(/MD)发布DLL版本导入库

msvcrtd.lib: CRT调试DLL版本导入库(/MDd)

根据文档:Linker Tools Warning LNK4098

当您的可执行文件使用多线程、非调试 运行 时间库时,报告的列表应包括 LIBCMT.lib,而不是 LIBCMTD.lib、MSVCRT.lib , 或 MSVCRTD.lib。你可以告诉 linker 忽略不正确的 运行-time 库,方法是对每个你想忽略的库使用 /NODEFAULTLIB