1. 程式人生 > 其它 >PHP版谷歌驗證(Google Authenticator)

PHP版谷歌驗證(Google Authenticator)

目錄

1、從一個專案目錄說起

.
├── bin
├── build
├── CMakeLists.txt
├── include
│   ├── testFunc1.h
│   └── testFunc.h
└── src
    ├── main.c
    ├── testFunc1.c
    └── testFunc.c

我們不必關心目錄中的檔案的功能,我們只看看CMakeLists.txt中的內容.

cmake_minimum_required (VERSION 2.8) # 設定執行本專案所需要的cmake最小版本號
project (demo) # 設定專案名稱
set (EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) # 設定可執行檔案的輸出目錄
aux_source_directory (src SRC_LIST) # 設定STC_LIST變數為src目錄下所有檔案
include_directories (include) #設定指定包含標頭檔案的目錄
add_executable (main ${SRC_LIST}) # 最終可執行檔案的名字main.ext,依賴的所有檔案

2、cmake其他命令

add_subdirectory (src),這個命令可以向當前工程新增存放原始檔的子目錄,並可以指定中間二進位制和目標二進位制的存放位置,具體用法可以百度。

這裡指定src目錄下存放了原始檔,當執行cmake時,就會進入src目錄下去找src目錄下的CMakeLists.txt,所以在src目錄下也建立一個CMakeLists.txt,內容如下,

add_library (testFunc_shared SHARED ${SRC_LIST})生成動態庫或靜態庫(第1個引數指定庫的名字;第2個引數決定是動態還是靜態,如果沒有就預設靜態;第3個引數指定生成庫的原始檔)

set (LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)

指定庫檔案輸出路徑

option(MYDEBUG "enable debug compilation" OFF)其第一個引數是這個option的名字,第二個引數是字串,用來描述這個option是來幹嘛的,第三個是option的值,ON或OFF,也可以不寫,不寫就是預設OFF。

add_compile_options(-std=c++11 -Wall)新增編譯選項

set(SRC main.c test.c xx.c xxx.c)設定變數SRC為後面指定的檔案

find_library(TESTFUNC_LIB testFunc HINTS ${PROJECT_SOURCE_DIR}/testFunc/lib)

在指定目錄下查詢指定庫,並把庫的絕對路徑存放到變數裡,其第一個引數是變數名稱,第二個引數是庫名稱,第三個引數是HINTS,第4個引數是路徑,其它用法可以參考cmake文件

target_link_libraries (main ${TESTFUNC_LIB})把目標檔案與庫檔案進行連結

3、實際專案的一個CMakeLists.txt