1. gdb 調(diào)試時出現(xiàn):value optimized out http://dsl000522.blog.sohu.com/180439264.html
2. boost::format("format-string")% arg1 % arg2 % ... % argN ;
format-string為要格式化的字符串
boost::format key_form("%016X:%08X%02X%02X%d") 016X 為16位對齊
https://blog.csdn.net/racaljk/article/details/19241369
3. cmake相關(guān)命令(CmakeLists.txt文件中寫的代碼)
3.2 常用變量
CMAKE_CURRENT_SOURCE_DIR : 當前處理的CMakeLists.txt 所在路徑
EXECUTABLE_OUTPUT_PATH : 最終二進制結(jié)果的存放目錄嚷往,常見用法:SET(EXECUTABLE_OUTPUT_PATH ./bin)
LIBRARY_OUTPUT_PATH :設(shè)置.so文件的存放目錄,常見用法SET(LIBRARY_OUTPUT_PATH ./lib)
3.2 編譯代碼
1.INCLUDE_DIRECTORIES : 添加頭文件目錄
2.AUX_SOURCE_DIRECTORY(<dir> <variable>) :查找指定目錄下的所有源文件,然后將結(jié)果存進指定
的變量名A坷檩,這樣确封,在最終ADD_EXECUTABLE(可執(zhí)行文件Demo ${A})颂郎,以上兩步操作的意思是:Cmake會將<dir>目錄下所有源文件的文件名賦值給變量A语稠,在指示變量A中的源文件需要編譯成為一個名為Demo的可
執(zhí)行文件
3.CMAKE_MINIMUM_REQUIRED(VERSION 2.6) :指定運行此配置文件所需的Cmake的最低版本
4.PROJECT(target):項目名稱
5.ADD_EXECUTABLE(Demo main.cc) : 將名為main.cc的源文件編譯成一個名稱為Demo 的可執(zhí)行文件
6.IF(CMAKE_BUILD_TYPE STREQUAL "Debug") :條件編譯
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -O0 -w -g -ggdb -std=c++0x")
add_definitions(-DXXX_MODE)
ELSE(CMAKE_BUILD_TYPE STREQUAL "Debug")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -D_FILE_OFFSET_BITS=64 -D_LARGE_FILE -O3 -w -g -std=c++0x")
add_definitions(-DRELEASE_MODE)
ENDIF(CMAKE_BUILD_TYPE STREQUAL "Debug" --- 可有可無)
7.SET(BASE CMAKE_CURRENT_SOURCE_DIR/../) : 設(shè)置變量目錄
8.TAEGET_LINK_LIBRARIES(<target> [item1] [item2][...] [[debug|optimized|general] <item>]):指令中的<target>是指通過ADD_EXECUTABLE()和ADD_LIBRARY()指令生成已經(jīng)創(chuàng)建的目標文件桃纯。
而[item]表示庫文件沒有后綴的名字脚草。默認情況下赫悄,庫依賴項是傳遞的。當這個目標鏈接到另一個目標時馏慨,
鏈接到這個目標的庫也會出現(xiàn)在另一個目標的連接線上埂淮。這個傳遞的接口存儲在interface_link_libraries的目標屬性中,可以通過設(shè)置該屬性直接重寫傳遞接口写隶。常見用法:TARGET_LINK_LIBRARIES(data_center_consumer ${LIBRARIES})
9.add_definitions() :Adds -D define flags to the compilation of source files
為源文件的編譯添加由-D 定義的標志
add_definitions(-DFOO -DBAR ...)為當前路徑以及下層路徑的目標加入編譯器命令行定義(定義在命令調(diào)用之前或之后被添加倔撞,注:也就是不確定)。這個命令可以用來添加任何標志慕趴,但是它的原意是用來增加預(yù)處
理器的定義(查看 add_compile_options() 命令增加其它的定義)痪蝇。那些以 -D 或 /D 開頭的標志鄙陡,看起來像預(yù)
處理器定義的flag,會被自動加到當前路徑的 COMPILE_DEFINITIONS 屬性中躏啰。為了后向兼容柔吼,非簡單值
(non-trival,指的是什么丙唧?——譯注)的定義會被留在flags組(flags set)里愈魏,而不會被轉(zhuǎn)換。關(guān)于在特定
的域以及配置中增加預(yù)處理器的定義想际,參考路徑培漏、目標以及源文件的 COMPILE_DEFINITIONS 屬性來獲取
更多的細節(jié)。