请滚动到底部以列出更新的简短问题
我正在构建PoDoFo。在最后一步,我使用 cmake 为 PoDoFo 创建 Visual Studio 2010 .sln 文件。但是,当我构建此解决方案文件时,它找不到依赖库的头文件。例如,它没有找到 boost 库头文件。
c:\pdf\podofo-0.9.1\src\base\PdfDefines.h(66): fatal error C1083: Cannot open include file: 'boost/config.hpp': No such file or directory
如果我禁用 boost,我会收到类似的 freetype 库头错误
2>..\..\src\doc\PdfFontCache.cpp(55): fatal error C1083: Cannot open include file: 'ft2build.h': No such file or directory
这是我的 build.cmd 文件
del cmakecache.txt
set BOOST_ROOT=C:\pdf\boost_1_51_0_code
set BOOST_INCLUDE_DIR=C:\pdf\boost\boost_1_51_0\staging\include
set BOOSTLIBDIR=C:\workspace\lib\boost\boost_1_51_0\staging\lib
set FT_INCLUDE=C:\PDF\freetype-2.4.0\include\freetype
set FTDIR=C:\PDF\freetype-2.4.0\objs\win32\vc2008
set JPEGDIR=C:\PDF\jpeg-8d\Release\lib
set TIFDIR=C:\PDF\tiff-4.0.3\lib
set ZLIBDIR=C:\pdf\zlib-1.2.8
set BUILD_FLAGS="/MT"
cmake -G "Visual Studio 10" "C:\pdf\podofo-0.9.1" ^
-DCMAKE_CXX_FLAGS_RELEASE:STRING=%BUILD_FLAGS% ^
-DFREETYPE_INCLUDE_DIR=%FT_INCLUDE% ^
-DLIBJPEG_LIBRARY_RELEASE=jpeg ^
-DCMAKE_INCLUDE_PATH="%INCLUDE%;%BOOST_INCLUDE_DIR%;%FT_INCLUDE%;%FT_INCLUDE%\freetype;%JPEGDIR%\jpeg;%TIFDIR%\tiff;%ZLIBDIR%\zlib" ^
-DCMAKE_LIBRARY_PATH="%LIB%;%BOOSTLIBDIR%;%FTDIR%;%JPEGDIR%\lib;%TIFDIR%;%ZLIBDIR%\lib" ^
-DPODOFO_BUILD_SHARED:BOOL=FALSE ^
-DPODOFO_BUILD_STATIC:BOOL=TRUE ^
-DWANT_BOOST:BOOL=0 ^
-DLIBJPEG_LIBRARY_NAMES_RELEASE=jpeg ^
-DFREETYPE_LIBRARY_NAMES_RELEASE=freetype240MT ^
-DZLIB_LIBRARY_NAMES_RELEASE=zlibstat
我是 CMake 的新手,我不明白库依赖项如何传递到 Visual Studio 项目?.
这是生成的解决方案文件中路径的屏幕截图。我不明白这些路径是如何从小脚本文件中进行的?它们不完全对应,DCMAKE_LIBRARY_PATH
所以它们来自哪里?
如何修复解决方案文件中的这些包含错误?我尝试将这些路径添加到 Project Properites >> VC++ Directories >> 'Include Directories' 但它仍然不想构建。恐怕即使我消除了这些包含错误,我也会收到链接器错误,因为库路径也可能不正确。如何修复这些错误并构建项目?谢谢。
更新的问题
我通过将路径更改为:
FT_INCLUDE=C:\PDF\freetype-2.4.0\include\
现在正如我所料,我得到了很多链接器错误。但是我注意到它确实创建了 PoDoFo.lib 文件,所以现在我尝试在示例演示中使用它。我也成功编译了它,但出现以下链接器错误:
1>podofo.lib(PdfFont.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
1>podofo.lib(PdfDifferenceEncoding.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
1>podofo.lib(PdfFontSimple.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
1>podofo.lib(PdfIdentityEncoding.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
1>podofo.lib(PdfFontTrueType.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
1>podofo.lib(PdfFontMetricsObject.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
1>podofo.lib(PdfEncodingObjectFactory.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
我确实确保将依赖库与路径一起添加到项目设置中,但为什么我仍然会收到这些错误?