使用 Visual Studio 构建 Freetype 应用程序时出错
Posted
技术标签:
【中文标题】使用 Visual Studio 构建 Freetype 应用程序时出错【英文标题】:Errors building Freetype application with Visual Studio 【发布时间】:2015-04-15 18:19:46 【问题描述】:上周我一直在为这个问题发疯。
Microsoft Visual Studio 社区 2013 Freetype 2.5.5 Windows 8.1 构建为 C++ 应用程序我一直在尝试针对 Freetype 的静态库进行构建,我在使用包含的 VC2010 项目构建库之后尝试过,并且还下载了预构建的库,但没有成功。我总是在下面得到相同的错误。我已经尝试了多个示例并且相同。我能够使用 gcc 成功编译和链接 lib(在构建 .a 库之后),这个问题似乎与 Visual Studio 隔离..
1>f:\audio\libs\header\freetype\fterrdef.h(35): error C2143: syntax error : missing '' before '('
1>f:\audio\libs\header\freetype\fterrdef.h(35): error C2143: syntax error : missing ';' before '<L_TYPE_raw>'
1>f:\audio\libs\header\freetype\fterrdef.h(35): error C2059: syntax error : '<L_TYPE_raw>'
1>f:\audio\libs\header\freetype\fterrors.h(164): error C2143: syntax error : missing ';' before ''
1>f:\audio\libs\header\freetype\fterrors.h(177): error C2059: syntax error : ''
1>f:\audio\libs\header\freetype\fterrors.h(177): error C2143: syntax error : missing ';' before ''
1>f:\audio\libs\header\freetype\freetype.h(38): error C2143: syntax error : missing ';' before ''
1>f:\audio\libs\header\freetype\freetype.h(38): error C2447: '' : missing function header (old-style formal list?)
可能导致此错误的示例代码:
#include <windows.h>
#include <ft2build.h>
#include FT_FREETYPE_H
int main(int argc, char **argv)
return 0;
【问题讨论】:
【参考方案1】:我在使用 VS2013 工具集 (SDK) 在 VS2013 中构建 FreeType2 时遇到了同样的问题。到目前为止,Google 结果似乎没有答案,所以我想我会分享,即使线程有点旧(但问题仍然是最近的!FreeType 2.6 版仍然存在同样的问题)。
作为参考,这可以通过最小的例子来重现:
#include <ft2build.h>
#include FT_FREETYPE_H
FT_Library library;
所以问题和解决方案非常简单,但不幸的是隐藏在输出日志中,乍一看并不那么明显,因此需要进行一些调查。
FreeType2 库和 Windows SDK 之间的标头名称存在冲突,即从以下位置拖入的 fttypes.h 文件:
C:\Program Files (x86)\Windows Kits\8.1\Include\shared\fttypes.h
相反,VS 应包含位于以下位置的 FT2 标头:
your_FT2_root\include\fttypes.h
这很容易解决 - 在您的项目属性 (Alt+F7) 中重新排列标题搜索路径,以便首先使用 FreeType2 路径(对我来说,将 FT2 放在顶部就像一个魅力)。
希望这会有所帮助!
干杯, 亨利克
【讨论】:
以上是关于使用 Visual Studio 构建 Freetype 应用程序时出错的主要内容,如果未能解决你的问题,请参考以下文章
如何使用Visual Studio 2013或Visual Studio 2017设置TFS 2013
使用 Cmake 为 Visual Studio 2015 构建 OpenCV 3.0.0 的 DLL
是否可以使用 Visual Studio 构建 WinDBG 扩展?