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

时间:2016-10-25 03:07:46

标签: visual-studio-2015 linker unresolved-external freetype

我正在使用FreeType库在Visual Studio 2015中编译程序。以前,我使用相同的项目使用库来编译带有我自己的Font类(以及许多其他东西)的静态库。一切都很顺利,全班都很棒。但是,我最近将项目更改为Windows应用程序,方法是将Properties - > General - > Configuration Type更改为Application (.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

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

3 个答案:

答案 0 :(得分:6)

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

注意:
类似的问题可能是由链接配置标志中的错误匹配引起的。问题Resolving LNK4098: defaultlib 'MSVCRT' conflicts with提供了有关问题详情和解决方案的良好解释。

答案 1 :(得分:3)

我以为我的解决方案已经插入 - 运行时库设置不匹配(我正在使用/ MT而不是/ MD构建的lib链接。该设置在C / C ++中 - &gt;代码生成部分。)_

答案 2 :(得分:1)

我遇到了同样的问题。我通过在其他依赖项中添加mvcrt.libmsvcmrt.lib并将/NODEFAULTLIB:LIBCMT添加到链接器选项中的其他选项来解决此问题。