使用FreeType进行编译时未解析的外部

The*_*802 2 linker freetype unresolved-external visual-studio-2015

我正在使用FreeType库在Visual Studio 2015中编译程序.以前,我使用相同的项目使用库来编译带有我自己的Font类(以及许多其他东西)的静态库.一切都很顺利,全班都很棒.不过,我最近改变了在项目一个Windows应用程序,通过改变Properties- > General- > Configuration TypeApplication (.exe).这样,我可以同时编写程序并编辑代码,而无需复制所有20个文件.

在编写了我的简单程序(与问题无关)并尝试重新编译之后,我收到了许多我以前没有得过的错误.它们如下:

LNK2001未解析的外部符号__imp__strncpy [...]\freetype.lib(ftbase.obj)

LNK2001未解析的外部符号__imp__fread [...]\freetype.lib(ftsystem.obj)

LNK2001未解析的外部符号__imp__realloc [...]\freetype.lib(ftsystem.obj)

LNK2001未解析的外部符号__imp__strstr [...]\freetype.lib(truetype.obj)

LNK2001未解析的外部符号__except_handler4_common [...]\MSVCRT.lib(_chandler4gs_.obj)

关于这些中的任何一个,网上似乎很少,更不用说这个特例了.当我编译为静态库时,一切都很顺利.我之前已经切换到编译了.exe,它也工作得很好.我过去曾处理过未解决的外部问题,但这似乎无法解释.

我正在联系 #pragma comment(lib, "freetype.lib").freetype.lib存在并且在正确的目录中.

我包括:

#include <ft2build.h>
#include FT_FREETYPE_H
Run Code Online (Sandbox Code Playgroud)

如果重要,我的程序是用C++编写的,我也在和其他库连接.任何帮助表示赞赏.

The*_*802 8

我找到了一个解决方案:根据这个MSDN页面,可以通过添加msvcrt.lib和添加msvcmrt.lib其他依赖项来解决一些未解析的外部问题.我试了一下,不知何故,它奏效了.我仍然对如何解决这个问题感到困惑.而且,坦率地说,我仍然不确定问题究竟是什么.如果有人能帮助我理解这一点,我将不胜感激.

注意:
类似的问题可能是由链接配置标志中的错误匹配引起的.问题解决LNK4098:defaultlib'MSVCRT'冲突提供了有关问题详细信息和解决方案的良好解释.


Joh*_*eph 6

我想我应该补充一下我的解决方案 - 运行时库设置不匹配(我链接的是使用 /MT 而不是 /MD 构建的库。该设置位于 C/C++->代码生成部分。)_