cmake是一個跨平台的開源編譯系統。它可以根據不同的平台、編譯器和其他參數來生成相應的Makefiles、Visual Studio工程或Xcode工程等。minsizerel是cmake中的一種調試級別。而後綴d則是指在Mac OS X平台下生成用於調試的動態庫。那麼,如何使用cmake生成minsizerel後綴d的動態庫呢?本篇文章將從以下幾個方面進行闡述:
一、配置CMakeLists.txt文件
對於cmake工程來說,增加minsizerel調試級別和後綴d生成,只需在CMakeLists.txt文件中加入以下參數:
SET(CMAKE_BUILD_TYPE "minsizerel")
SET(CMAKE_SHARED_LINKER_FLAGS "-Wl,-install_name,@rpath/libexample.dylib")
上面的第一行指定了編譯級別為minsizerel,這種級別很適合將cmake項目進行部署。而第二行則是設置生成的動態庫的名稱。在Mac OS X平台下,動態庫鏈接器的名稱為libexample.dylib,其中example為工程名稱。同時,@rpath表示相對路徑,這裡在編譯生成後會對動態庫的路徑進行替換。
二、編譯工程
接下來需要在終端中使用cmake的命令行編譯生成minsizerel後綴d的動態庫。首先進入工程目錄,然後執行下面的命令:
cmake -DCMAKE_BUILD_TYPE=minsizerel ..
make
執行上述命令後便可以編譯生成minsizerel後綴d的動態庫。
三、使用動態庫
如果想在工程中使用剛生成的動態庫,則需要通過CMakeLists.txt文件進行設置。如下面的示例代碼:
cmake_minimum_required(VERSION 3.3)
project(example)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp)
add_executable(example ${SOURCE_FILES})
target_link_libraries(example example_lib)
add_library(example_lib SHARED IMPORTED)
set_target_properties(example_lib PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/libexample.dylib)
上述代碼中,add_library函數用於添加example_lib動態庫,同時此庫的位置路徑為變量CMAKE_CURRENT_SOURCE_DIR的值加上libexample.dylib。而通過target_link_libraries函數,則可以將example程序與example_lib動態庫進行鏈接。
四、使用lldb調試動態庫
在Mac OS X平台下,lldb是一種十分常見的命令行調試器。如果想使用lldb對剛剛生成的minsizerel後綴d的動態庫進行調試,則需要在工程目錄執行下面的命令:
lldb example
其中example為被調試的程序名稱。執行上面命令後,進入lldb交互界面,可以通過各種調試命令進行調試操作,例如設置斷點、單步執行、打印變量值等等。
原創文章,作者:RBMDJ,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/373807.html