cmake使用範例

2021-06-20 16:03:35 字數 2443 閱讀 4965

cmake作為一款跨平台的專案構建工具,其使用範圍已經越來越廣,本文以實際專案為例,展示乙個使用該編譯工具的模板。希望我們都能在這些高效的工具幫助下都享受程式設計的樂趣。

project

|------src

|         |----libs

|         |----modules

|------includes

|------build

|------bin

|------cmakelists

根目錄下cmakelists.txt檔案的內容

[c-sharp]view plain

copy

#專案工具

project(project)  

cmake_minimum_required(version 2.6)  

set(cmake_c_flags "$ -g -wall -o2"

)  set(cmake_cxx_flags "$ -g -wall -o2"

)  add_subdirectory(src)  

project->src目錄下的cmakelists.txt檔案的內容:

[c-sharp]view plain

copy

add_subdirectory(modules)  

add_subdirectory(libs)  

[c-sharp]view plain

copy

set(myexe_exec_srcs  

main.cpp  

# 其它cpp檔案

)  include_directories(  

$/src/includes  

$/src/libs/markup   

$/src/modules/  

/opt/ice/include)  

link_directories(  

/usr/local/lib  

$env/lib  

$/src/libs)  

link_libraries(myexe markup)  

link_libraries(myexe classloader)  

add_executable(myexe $)  

set(executable_output_path $/bin/)  

install(targets myexe runtime destination bin)  

project->src->libs目錄下cmakelists.txt檔案的內容:

[c-sharp]view plain

copy

set(utils_lib_srcs  

util.cpp  

#其它cpp檔案

)  include_directories(  

$/src/includes  

$/src/libs/markup   

$/src/libs)  

link_directories(  

/usr/local/lib   

#其它庫路徑

)  link_libraries(utils markup)  

link_libraries(utils uuid)  

#生成靜態庫

add_library (utils static $)  

set(library_output_path $/lib/)  

project->src->modules目錄下cmakelists.txt檔案的內容:

[c-sharp]view plain

copy

include_directories(  

$/src/includes  

$/src/libs/markup   

$/src/libs  

)  link_directories(  

/usr/local/lib  

)  link_libraries(mymod markup)  

link_libraries(mymod utils)  

#生成動態鏈結庫

add_library (mymod shared mymod1.cpp mymod2.cpp)  

set(library_output_path $/lib/)  

set_target_properties(mymod properties version 1.0.0 soversion 0)  

install(targets mymod library destination lib)  

編譯工程時直接到build目錄下,執行cmake ..,然後執行make就可以了。

游標使用範例

declare colname varchar 100 declare cu cname cursor for select name from syscolumns where id object id sh data 1 ok open cu cname fetch next from cu c...

chmod使用範例

chmod 750 a.out 改變 a.out的許可權為750 chmod a x a.out 對所有使用者增加 a.out的執行許可權,a all 表示所有使用者 chmod u rwx a.out 設定屬主的許可權為讀 寫和執行,u user 表示屬主使用者 chmod g rw a.out ...

storm使用範例

此案例實現從陣列中隨機讀取字串傳送到bolt,bolt將字串變成大寫傳送到下乙個bolt,bolt將字串加上時間戳然後寫到檔案中 public class randomwordspout extends baserichspout 初始化方法,在spout元件例項化時呼叫一次 override pu...