首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用PoDoFo和CMake构建MinGW库

利用PoDoFo和CMake构建MinGW库
EN

Stack Overflow用户
提问于 2013-11-18 07:39:54
回答 2查看 6.1K关注 0票数 3

我正试图在我的Windows (用作API)上构建。它是使用CMake完成的。ReadMe文件如下所示。不幸的是,我对CMake并不熟悉,也无法从中了解到什么。

基于Windows的构建PoDoFo Windows2.6.x是CMake所必需的。您可以从cmake.org下载它。在Windows上,可以将PoDoFo构建为共享库或静态库。这两种方法都不支持。默认情况下,只构建共享库。如果您想要静态库,只需使用cmake的额外参数禁用共享库的生成:

代码语言:javascript
复制
    -DPODOFO_BUILD_SHARED=FALSE

在win32上处理库命名 特别是在Windows上,自定义构建库的名称与您可能作为预构建副本下载的名称不同,这一点也很常见。如果你不告诉他们,CMake就找不到他们了。使用这些变量可以告诉CMake在下面查找库的名称:

代码语言:javascript
复制
•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

CMake与MinGW构建在Windows上 设置MinGW后,确保MinGW "bin“目录位于您的路径上,并确保设置了CMAKE_INCLUDE_PATH和CMAKE_LIBRARY_PATH,以便CMake能够找到库PoDoFo所需的头文件和.lib文件。众所周知,来自http://gnuwin32.sf.net/http://gnuwin32.sf.net/库包可以使用PoDoFo,因此从那里安装zlib、freetype和libjpeg就可以了。 若要使用默认的PoDoFo安装以及已经在您的路径上的MinGW配置和构建MinGW,请执行以下操作:

代码语言:javascript
复制
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_PATHDCMAKE_LIBRARY_PATH应该是什么呢?还有,什么是"MinGW Makefiles"?我必须提供额外的参数吗?

如果有人能简单地向我解释一下我是怎么做的,我会很感激的。

编辑:执行CMAKE:时出错

代码语言:javascript
复制
-- 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)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-20 16:36:18

如果您遵循了所有的说明,编译它通常就足够了:

代码语言:javascript
复制
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创建makefile以便进行混合:

  • 指定手册中公布的PODOFO_BUILD_SHARED:构建、共享或静态版本。
  • CMAKE_INCLUDE_PATHCMAKE_LIBRAY_PATH用于引用构建podofo所需的包。如果您像以前一样下载了预编译的包,因为您有downloaded和二进制文件,那么您需要给出那些头和二进制文件的路径。如果需要,可以多次指定变量,例如: -DCMAKE_INCLUDE_PATH=/path/to/freetype/include -DCMAKE_MinGW_path=/path/to/freetype/lib-DCMAKE_MinGW_path=/MinGW/zlib/MinGW_path=/path/MinGW/ -DPODOFO_BUILD_SHARED:BOOL=FALSE
  • "MinGW Makefiles"告诉cmake创建特定于mingw的makefile。否则,默认情况下,它会在windows上创建特定于的makefile。
  • 最后,引用父目录中的CMakeLists.txt,最后引用..

最后,但并非最不重要的是,使用make的混合版本进行编译。

票数 5
EN

Stack Overflow用户

发布于 2013-11-25 13:09:40

要构建PoDoFo,需要安装GnuWin32、CMake、MinGW32和PoDoFo源代码

  1. 下载GetGnuWin32
  2. 安装到c:\getgnuwin32 32
  3. 开放cmd.exe
  4. cd c:\getgnuwin32 32
  5. download.bat
  6. install.bat

然后,正如@ibizaman回答中所建议的那样

代码语言:javascript
复制
cmake -G "MinGW Makefiles"  -DCMAKE_INCLUDE_PATH="C:\gnuwin32\include" -DCMAKE_LIBRARY_PATH="C:\gnuwin32\lib" -DPODOFO_BUILD_STATIC=TRUE ..

FreeType应该与GnuWin32包一起安装

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20042467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档