Linux下用cmake編譯大型C C 專案

2021-07-27 02:25:12 字數 1336 閱讀 3775

通過cmake將c/c++專案編譯成可執行檔案或靜態庫或共享庫

在專案根目錄建立cmakelists.txt檔案,及專案src目錄下建立新增編譯檔案的cmakelists.txt檔案。可以根據專案需求配置依賴庫和需要生成的檔案。

編譯專案的cmakelists.txt檔案:

macro (add_sources)  #遍歷工程檔案

file (relative_path _relpath "$"

"$")

foreach (_src $)

if (_relpath)

else()

endif()

endforeach()

if (_relpath) # propagate srcs to parent directory

set (srcs $ parent_scope)

endif()

endmacro()

project(dtest) #專案名稱

cmake_minimum_required(version 2.8.4) #cmake最低版本

#find_package(opencv required)

#set(cmake_cxx_flags "$ -std=c++11 -o2 ") #使用c++11編譯

#include_directories($ /home/star/library/dlib-19.2/) #專案依賴

#link_directories(/home/star/library/dlib-19.2/build/dlib/libdlib.so)

add_subdirectory(src)

add_executable(dtest $) #生成可執行檔案

#add_library(dtest shared $) #生成動態庫

#add_library(dtest static $) #生成靜態庫

#target_link_libraries(dtest $ /home/star/library/dlib-19.2/build/dlib/libdlib.so)

新增專案檔案的cmakelists.txt檔案:

add_sources(helloworld.h helloworld.cpp)

add_sources(main.cpp)

#add_sources(calltest.cpp)

注意:如果需要引用其他庫,則引用的庫(.a,.so)最好跟需要生成的庫(.a,.so)型別一樣否則可能會報錯。

linux下用cmake編譯安裝mysql

編譯 linux下用cmake編譯安裝mysql 5.6.35 安裝cmake sudo pacman s cmake wget tar zxvf mysql 5.6.35.tar.gz cd mysql 5.6.35 建立資料存放目錄 mkdir p vhs mysql mysql56 建立使用者...

VS下用CMake編譯OpenCV程式

想用cmake編譯opencv的初衷是。不知道由於什麼情況,在自己的筆記本上寫的opencv程式在實驗室台式電腦上編譯不過,反之亦然,在台式電腦上寫的也不能在筆記本上跑。然後每次重新建立工程什麼的也很不開心。所以。據別人說用cmake編譯很方便。所以就。有多方便呢,只要有乙個cmakelists.t...

VS下用CMake編譯OpenCV程式

想用cmake編譯opencv的初衷是。不知道由於什麼情況,在自己的筆記本上寫的opencv程式在實驗室台式電腦上編譯不過,反之亦然,在台式電腦上寫的也不能在筆記本上跑。然後每次重新建立工程什麼的也很不開心。所以。據別人說用cmake編譯很方便。所以就。有多方便呢,只要有乙個cmakelists.t...