1、準備配置工具
1.1、Libnfc-x-x-x 版本 參見:libnfc
1.2、MinGW64 ( 注意此處一定得用 MingGW-64"TDM64", 官方的文檔裡已經說明通常的 MingGW 不帶 PCSC Header )
1.3、libusb-win32-bin-x.x.x.x
1.4、cmake-2.8.6-win32-x86
工具包下載下傳:工具包
2、安裝相關工具并配置系統環境變量
2.1、首先需要安裝 MingGW64, Libusb 及 CMake
2.1.1、安裝 MingGW64
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL9UEVNJTWU1EcWJDZwhnMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL1UjNwIzNwATM1AjMxgTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
2.1.2、安裝 cmake
下載下傳最新版本位址:下載下傳位址
2.1.3、安裝 Libusb
下載下傳位址:
downloads.sourceforge.net/libusb-win32/libusb-win32-filter-bin-0.1.10.1.exe
xp 使用者請安裝 libusb-win32-filter-bin-0.1.12.1.exe,一路“下一步”就行了。
2.1.4、安裝 doxygen
2.2、配置相關環境變量
添加:
“ c:\MinGW64\bin;c:\MinGW64\x86_64-w64-mingw32\lib32;c:\MinGW64\x86_64-w64-mingw
32\include” 到環境變量。
另外需要将 Libusb 安裝路徑添加進系統變量,方法如上面一樣。
然後就可以測試一下,調出 cmd 視窗,然後輸入 cmake 會看到一堆的列印。
確定 Libusb 目錄下包含 Include 及 Lib 檔案,另外 Check 一下 System32 裡是否存在 linusb0.dll 及 winsdcard.dll,編譯時需要查找。
2.3、硬體接入 PC 後使用 Libusb 手動安裝驅動,安裝成功後,裝置管理器會有相關顯示(我的裝置使用的是 NXP PN533) 。
3、使用 CMake 建構工程
1.啟動 “cmake-gui.exe”,并添加 Source Code 及工程輸出路徑(路徑不能有中文),并進行配置工程為 MingW MakeFile。
此後開始建構工程,其中有可能遇到幾個問題:
1)是有關 PCSC 這個便應該是此前所說 MingW 版本的問題了,标準包不包含 PCSC 頭檔案。
解決方法是設定這兩項:
PCRE_INCLUDE_DIRS: C:/MinGW/Include
PCRE_LIBRARIES : C:/Windows/System32/winscard.dll
2)提示沒找到 LIBUSB
CMake Error at cmake/modules/FindLIBUSB.cmake:53 (MESSAGE):
Could not find LIBUSB
Call Stack (most recent call first):
cmake/modules/LibnfcDrivers.cmake:14 (FIND_PACKAGE)
libnfc/CMakeLists.txt:18 (INCLUDE)
解決方法是在 CMAKE 裡,指定到安裝目錄
LIBUSB_INCLUDE_DIR: C:\Program Files (x86)\LibUSB-Win32-0.1.10.1\include
LIBUSB_LIBRARIES: C:\Program Files (x86)\LibUSB-Win32-0.1.10.1\lib
還有一個錯誤:
Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
解決:隻要安裝了上面的 Doxygen 就 OK 的,它會自動添加到環境變量裡,然後點 configure,再點 Generate 就能編譯成功。
如果遇到這樣的錯誤:
Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
解決方法是安裝 PkgConfig
解壓 pkg-config_0.26-1_win32.zip 并放到 C 盤根目錄,然後在 CMAKE 裡指定
網上下載下傳的 pkg-config_0.26-1_win32.zip,可能會因為缺少 libglib-2.0-0.dll 而無法運作,這時,要下載下傳 glib_2.18.4-1_win32.zip
http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.18/glib_2.18.4-1_win32.zip
隻要裡面的 libglib-2.0-0.dll 檔案就夠了,放到 pkg 的目錄下,如下圖
4、編譯執行
開始菜單,CMD 進入指令行,進到我們上面建構的編譯路徑檔案夾,我們上面示範的是源碼放在 E:\libnfc-1.7.0-rc6,編譯輸出放在 E:\libnfc-build 調用“mingw32-make”指令進行編譯,如下圖:
OK 了,編譯成功,此時進入工程檔案夾下 Example 及 Utils 檔案夾裡已生成可執行檔案。
refer:
https://blog.csdn.net/fengshuiyue/article/details/37921717