提问人:TheTrueJard 提问时间:10/25/2016 更新时间:5/8/2018 访问量:9036
使用 FreeType 编译时无法解析的外部
Unresolved Externals When Compiling With FreeType
问:
我正在使用 FreeType 库在 Visual Studio 2015 中编译一个程序。以前,我使用同一个项目来编译一个静态库,其中包含我自己的 Font 类(以及许多其他东西),使用该库。一切都很好,上课效果很好。但是,我最近通过将 ->-> 更改为 .这样,我就可以同时编写程序和编辑代码,而无需复制所有 20 多个文件。Properties
General
Configuration Type
Application (.exe)
在编写了我的简单程序(与问题无关)并尝试重新编译后,我遇到了许多以前没有的错误。它们如下:
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++ 的,我也与其他库链接。任何帮助都是值得赞赏的。
答:
我找到了一个解决方案:根据这个MSDN页面,一些未解决的外部问题可以通过添加和到额外的依赖项来解决。我试过了,不知何故,它奏效了。我仍然对这将如何解决问题感到困惑。而且,坦率地说,我仍然不太确定问题是否真的存在。如果有人能帮助我理解这一点,将不胜感激。msvcrt.lib
msvcmrt.lib
注意:
类似的问题可能是由链接配置标志中的混淆引起的。问题解决LNK4098:defaultlib“MSVCRT”冲突提供了有关问题详细信息和解决方案的良好解释。
我有同样的问题.我通过添加和添加其他依赖项并在链接器选项中添加其他选项来解决这个问题。mvcrt.lib
msvcmrt.lib
/NODEFAULTLIB:LIBCMT
评论
msvcrt.lib
mvcrt.lib
以为我会配合我的解决方案 - 运行时库设置不匹配(我正在链接到使用 /MT 而不是 /MD 构建的库。该设置位于 C/C++->代码生成部分。_
评论