我正在尝试在我的Windows平台上构建PoDoFo Library
(用作API)。它是使用CMake
完成的。 ReadMe
文件说明如下。不幸的是,我是CMake的新手,我无法从中得到很多。
在Windows上构建PoDoFo
Windows需要CMake 2.6.x.你可以从下载 cmake.org。
在Windows上,PoDoFo可以构建为共享库或静态库。 不支持构建它们。默认情况下仅限共享库 将建成。如果您想要一个静态库,只需禁用生成 带有cmake额外参数的共享库:
-DPODOFO_BUILD_SHARED=FALSE
在win32上处理库命名
特别是在Windows上,自定义构建库也很常见 与您可能下载为预建副本的名称不同。 如果被称为其他东西,CMake将无法找到它们 除非你告诉它。使用这些变量告诉CMake要使用哪些名称 寻找下面的图书馆:
•FREETYPE_LIBRARY_NAMES_DEBUG, FREETYPE_LIBRARY_NAMES_RELEASE and FREETYPE_LIBRARY_NAMES
•TIFF_LIBRARY_NAMES_DEBUG, TIFF_LIBRARY_NAMES_RELEASE and TIFF_LIBRARY_NAMES
•LIBJPEG_LIBRARY_NAMES_DEBUG, LIBJPEG_LIBRARY_NAMES_RELEASE and LIBJPEG_LIBRARY_NAMES
•ZLIB_LIBRARY_NAMES_DEBUG, ZLIB_LIBRARY_NAMES_RELEASE,ZLIB_LIBRARY_NAMES
使用MinGW在Windows上构建CMake
设置MinGW后,请确保MinGW“bin”目录已打开 你的PATH,一定要设置CMAKE_INCLUDE_PATH和 CMAKE_LIBRARY_PATH使CMake可以找到头文件和.lib文件 对于PoDoFo所需的库。 GnuWin32库包来自 已知http://gnuwin32.sf.net/可以与PoDoFo一起使用,因此安装 从那里开始,zlib,freetype和libjpeg应该可以解决问题。
使用默认的GnuWin32安装配置和构建PoDoFo MinGW已经在你的路径上了:
md ..\podofo-debug
cd ..\podofo-debug
cmake -G "MinGW Makefiles" ..\podofo-src -DCMAKE_INCLUDE_PATH=c:\progra~1\gnuwin32\include -DCMAKE_LIBRARY_PATH=c:\progra~1\gnuwin32\lib -DPODOFO_BUILD_SHARED:BOOL=FALSE mingw32-make
我已经安装了CMake
并下载了提到的其他库freetype, zlib, libjpeg
。它们的标题和二进制文件位于各自的文件夹中。
现在DCMAKE_INCLUDE_PATH
和DCMAKE_LIBRARY_PATH
应该是什么?还有什么是"MinGW Makefiles"
?我是否必须提供任何额外的参数?
如果有人能够通过简单的步骤解释我如何解决这个问题,我将不胜感激。
编辑:执行CMAKE时出错:
-- Ensure you cppunit installed version is at least 1.12.0
Cppunit not found. No unit tests will be built.
CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindPack
ageHandleStandardArgs.cmake:97 (message):
Could NOT find FREETYPE (missing: FREETYPE_LIBRARY FREETYPE_INCLUDE_DIR)
Call Stack (most recent call first):
C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindPackageHandleStan
dardArgs.cmake:291 (_FPHSA_FAILURE_MESSAGE)
cmake/modules/FindFREETYPE.cmake:75 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:372 (FIND_PACKAGE)
答案 0 :(得分:6)
要构建PoDoFo,您需要安装GnuWin32,CMake,MinGW32和PoDoFo源
download.bat
install.bat
然后按照@ibizaman回答
的建议cmake -G "MinGW Makefiles" -DCMAKE_INCLUDE_PATH="C:\gnuwin32\include" -DCMAKE_LIBRARY_PATH="C:\gnuwin32\lib" -DPODOFO_BUILD_STATIC=TRUE ..
FreeType应与GnuWin32软件包一起安装
答案 1 :(得分:5)
如果您按照所有说明进行编译,通常就足够了:
cd <podofo root directory (where CMakeLists.txt is)>
mkdir build
cd build
cmake -G "MinGW Makefiles" -DCMAKE_INCLUDE_PATH=<path to headers> -DCMAKE_LIBRARY_PATH=<path to libraries> -DPODOFO_BUILD_SHARED:BOOL=FALSE ..
mingw32-make
一步一步:
首先,转到podofo源所在的目录。你应该看到一个CMakeLists.txt
文件。
第二个(和第三个),创建(并进入)将完成编译的目录。我称之为构建,但它可以是任何名称。这是最佳实践,因为您只需删除构建目录并返回到干净状态。
第四,请cmake为mingw创建makefile:
PODOFO_BUILD_SHARED
:build shared或static version。 CMAKE_INCLUDE_PATH
和CMAKE_LIBRAY_PATH
用于引用构建podofo所需的包。如果您下载了预编译的软件包,就像您拥有de头文件和二进制文件一样,那么您需要向cmake提供这些头文件和二进制文件的路径。如果需要,您可以多次指定变量,例如:
cmake -G "MinGW Makefiles" -DCMAKE_INCLUDE_PATH=/path/to/freetype/include -DCMAKE_LIBRARY_PATH=/path/to/freetype/lib -DCMAKE_INCLUDE_PATH=/path/to/zlib/include -DCMAKE_LIBRARY_PATH=/path/to/zlib/lib -DPODOFO_BUILD_SHARED:BOOL=FALSE ..
"MinGW Makefiles"
告诉cmake创建特定于mingw的makefile。否则,默认情况下在Windows上,它会创建特定于Microsoft Visual Studio的makefile。
CMakeLists.txt
为最终引用父目录中的..
。最后但并非最不重要的是,使用mingw版本的make编译。