簡體   English   中英

使用CMake和MinGW構建PoDoFo庫

[英]Building PoDoFo library using CMake and MinGW

我正在嘗試在我的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

CMake使用MinGW構建在Windows上

設置MinGW后,確保MinGW“bin”目錄在PATH上,並確保設置CMAKE_INCLUDE_PATH和CMAKE_LIBRARY_PATH,以便CMake可以找到PoDoFo所需庫的頭文件和.lib文件。 來自http://gnuwin32.sf.net/的GnuWin32庫包已知可以與PoDoFo一起使用,因此從那里安裝zlib,freetype和libjpeg應該可以解決問題。

要使用默認的GnuWin32安裝配置和構建PoDoFo,並在PATH上使用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_PATHDCMAKE_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)

要構建PoDoFo,您需要安裝GnuWin32 ,CMake,MinGW32和PoDoFo源

  1. 下載GetGnuWin32
  2. 安裝到c:\\ getgnuwin32
  3. 打開cmd.exe
  4. cd c:\\ getgnuwin32
  5. download.bat
  6. 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軟件包一起安裝

如果您按照所有說明進行編譯,通常應該足夠:

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 :構建共享版本或靜態版本。
  • CMAKE_INCLUDE_PATHCMAKE_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進行編譯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM