Ⅰ linux cmakelist 怎麼用
由於調試需要因此研究了一下cmake這個誇平台的編譯工具的使用方法.
1.本人的機器為ubuntu 10.04,在連網的情況下直接在終端輸入:
[cpp] view plain 在CODE上查看代碼片派生到我的代碼片
root@zsh-linux:~#apt-get install cmake
安裝完畢之後可以在/var/cache/apt/archives看到安裝的.deb文件
或者在cmake官網下載cmake for linux
此時有個注意點是建議下載 cmake-2.8.4.tar.gz 而不是
cmake-2.8.4-Linux-i386.tar.gz
下載完成後解壓
[cpp] view plain 在CODE上查看代碼片派生到我的代碼片
root@zsh-linux:/opt#tar -zxvf cmake-2.8.4.tar.gz
然後 cd 到cmake-2.8.4目錄下
root@zsh-linux:/opt/cmake-2.8.4#
root@zsh-linux:/opt/cmake-2.8.4# ./bootstrap
root@zsh-linux:/opt/cmake-2.8.4# make
root@zsh-linux:/opt/cmake-2.8.4# make install
安裝完畢後查看是否安裝成功:
root@zsh-linux:/opt/cmake-2.8.4# cmake --version
cmake version 2.8.4
有以上信息表示安裝cmake成功。
2.cmake 的使用
(1)創建一個工程目錄文件夾,然後創建一個hello.c
[cpp] view plain 在CODE上查看代碼片派生到我的代碼片
#include<stdio.h>
int main()
{
printf(「hello,this is my first using cmake project/n」);
return 0;
}
(2)然後創建一個build目錄(用於編譯生成的相應文件),與hello.c目錄同級
(3)編寫CMakeLists.txt內容如下:(於hello.c目錄同級)
[cpp] view plain 在CODE上查看代碼片派生到我的代碼片
cmake_minimum_required(VERSION 2.8)
PROJECT(cmake_test)
SET(SRC_LIST main.c)
INCLUDE_DIRECTORIES(/usr/include/glib)
MESSAGE(STATUS "This is BINARY dir "${HELLO_BINARY_DIR})
MESSAGE(STATUS "This is SOURCE dir "${HELLO_SOURCE_DIR})
ADD_EXECUTABLE(hello ${SRC_LIST})
(4)進入build目錄輸入 cmake ..
[cpp] view plain 在CODE上查看代碼片派生到我的代碼片
root@zsh-linux:/home/cmake_test/build# cmake ..
若編譯成功在build目錄下會生成相應文件,其中有個makefile文件
有可能會出現問題:
CMAKE_CXX_COMPILER-NOTFOUND" was not found
解決方法:
[cpp] view plain 在CODE上查看代碼片派生到我的代碼片
root@zsh-linux:/home/cmake_test/build# apt-get install g++
(可選)cmake -D CMAKE_CXX_COMPLIER=」g++」CMAKE -D CMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=」/usr/local」
(5)輸入make 命令執行成功後在build目錄下會看到可執行的hello
(6)./hello
輸出 hello,this is my first usingcmake project。
註:這只適用於簡單的工程,若復雜的工程項目請參考www.cmake.org
Ⅱ linux里用cmake安裝的軟體要怎麼卸載
linux卸載有2種方式:
1,如果你的安裝時通過rpm包安裝的,那麼你可以執行如下命令進行卸載
1
rpm -e cmake
以上cmake請使用實際的包名來替換
2,如果是通過源碼安裝的,你可以進行cmake安裝的目錄,直接刪除即可
1
rm -rf /usr/local/cmake
以上/usr/local/cmake請使用實際的安裝路徑進行替換。
Ⅲ Linux 如何運行benchmark循環跑
Linux 如何運行benchmark循環跑如下
benchmark中包含了跑benchmark的源碼benchncnn.cpp,感興趣的可以先看一下裡面的內容。在Linux的文件根目錄下,新建一個build文件夾並進入,當然也可以不叫build,隨便你自己起。mkdir build && cd build進入之後就可以進行編譯了,編譯之後在build文件夾下會生成一個叫benchmark的文件夾,之後的工作會在這里進行。編譯用的是cmake,這里如果有問題的話可以注意一下cmake的版本,我用的版本是3.12.3。具體命令如下:cmake .
make -j8這里cmake編譯實際上是要根據上一層文件夾的CMakeLists.txt的文本來的,這里的..其實就是表示的上一層文件夾。 Make -j後面的數字是開幾個核,根據自己電腦的實際情況來。執行完成之後就可以看到build里有了benchmark的文件夾。
入這個文件夾,可以看到一個benchncnn的可執行文件已經編譯好了,運行這個可執行文件就可以測試模型的速度。但是這個可執行文件默認的是找到當前文件夾下的param格式的文件。
所有自帶的模型文件都在ncnn根目錄下的benchmark的文件夾中,把裡面所有的param文件都拷貝到現在的benchmark文件夾,然後執行如下命令./benchncnn 4 2 0 -1
第一個數字表示測試次數,第二個表示開的線程數(這一點ncnn做的不錯),最後一個數字-1表示只測cpu。NCNN交叉編譯到rk3288(armv7架構)和rk3399(armv8架構)的方法。
Ⅳ Cmake命令之find_library介紹
該命令用於查找庫(動態庫或者靜態庫),當構建依賴於第三方庫/系統庫,可以使用該命令來查找並使用庫(Cmake中有另外一個命令 find_package ,能獲取庫的更多信息,具體可以參考 Cmake命令之find_package介紹 )
通過一個例子來看下基本的使用,假設我們目錄和文件樹如下,:
我們在 mylib 中生成最終的庫 libmymath.a ,然後在頂層的 CMakeLists.txt 中查找這個庫文件,幾個文件的具體內容如下:
在 ./mylib/ 下執行 cmake . 和 make 以便生成庫 libmymath.a ,然後在 ./ 目錄下執行 cmake . 和 make ,得到可執行文件 test ,運行 test 的結果為:
庫的搜索路徑分為兩大類: 默認搜索路徑 和 附加搜索路徑 。
默認搜索 路徑包含 cmake 定義的以 CMAKE 開頭的一些變數(例如 CMAKE_LIBRARY_ARCHITECTURE 、 CMAKE_PREFIX_PATH 、 CMAKE_LIBRARY_PATH 、 CMAKE_FRAMEWORK_PATH )、標準的系統環境變數(例如系統環境變數 LIB 和 PATH 定義的路徑)、系統的默認的庫安裝路徑(例如 /usr 、 /usr/lib 等);
附加搜索路徑 即 find_library 命令中通過 HINTS 或 PATHS 指定的路徑;
1) 通過命令行使用 -D 指定的 CMAKE_XXX_PATH 變數,也就是形如 cmake . -DCMAKE_XXX_PATH=paths 的格式。其中 CMAKE_XXX_PATH 包含如下幾個:
CMAKE_PREFIX_PATH :指定搜索目錄的前綴,如果前綴有多個,需要以 分號分割的列表 方式提供,該變數默認為空,一旦該變數非空,那麼會搜索該變數提供的目錄,以及 ${CMAKE_PREFIX_PATH}/lib ;例如 CMAKE_PREFIX_PATH=A;B ,那麼 find_library 會從 A 、 B 以及 A/lib 、 B/lib 中搜索庫是否存在;
CMAKE_LIBRARY_ARCHITECTURE :如果該變數被設置,那麼會搜索目錄 ${CMAKE_PREFIX_PATH}/lib/${CMAKE_LIBRARY_ARCHITECTURE} ;
CMAKE_LIBRARY_PATH :指定 find_library 的庫查找目錄,默認值為空,多個值時需要以分號分割列表指定;
CMAKE_FRAMEWORK_PATH *:指定 macOS 的框架作為搜索路徑。
2) 通過在 環境變數 中指定 CMAKE_XXX_PATH 變數,例如在 window 的環境變數中增加 CMAKE_XXX_PATH (以 ; 分割多個路徑)、 Linux 中 shell 配置文件中添加(以 : 分割多個路徑)。用法和 cmake -D 指定類似,例如在我的機器中( macOS ),在 .zshrc (我的命令行配置文件)中增加 export CMAKE_LIBRARY_PATH="/XXX/……/mylib" ,即可在將該目錄加入到搜索路徑中。
3) HINTS 選項指定的路徑。
4) 系統環境變數指定的目錄,默認是 LIB 和 PATH 指定的路徑。例如在 PATH 中指定庫搜索目錄;
也可以通過 find_library 中的 PATHS ENV 環境變數名稱 ( cmake 中使用環境變數名稱的格式為 $ENV{環境變數名稱} )來指定從哪個環境變數名稱中獲取路徑,例如定義一個 TESTPATH 環境變數並賦值為 ./mylib ,並在 find_library 命令中指定使用該環境變數:
5)跟當前系統相關的平台文件路徑,一般來說指的是當前系統安裝軟體的標准目錄,不同的操作系統對應的路徑有所不同。 camke 中 find_library 與此相關的也有如下幾個, CMAKE_SYSTEM_XXX_PATH 變數,這些:
CMAKE_SYSTEM_PREFIX_PATH :指定安裝目錄的前綴,例如在 Windows 下的 /XXXX/Program Files , Linux 下的 /usr 或 /usr/local 等。 find_library 命令會搜索這些前綴目錄,也會以這些目錄加上 lib 進行搜索,例如搜索 /usr/local/lib ;
CMAKE_SYSTEM_LIBRARY_PATH :默認是當前系統的標准目錄,不建議修改它;例如在我的系統,這個變數的值是 /usr/lib/X11 ;
CMAKE_SYSTEM_FRAMEWORK_PATH : macOS 框架路徑,默認是當前系統的標准目錄,不建議修改它;例如在我的系統,這個變數的值包含了路徑 /Library/Frameworks ;
6) PATHS 選項指定的路徑。
Ⅳ Linux下gcc/g++,make和cmake的區別
gcc是一個C語言編譯器,g++是一個C++語言的編譯器,這是它們的主要區別,雖然說gcc也可以編譯C++代碼文件,但實際上是需要g++支持的,gcc編譯C++時是要調用g++的。
make是根據Makefile中定義的編譯規則來對多個源文件執行編譯命令,也就是說它是管理編譯規則的工具,並不實際編譯文件;而cmake則是可以生成Makefile文件的一個工具,實際上,cmake工具不僅可以生成Makefile,還可以生成Windows平台的VS等開發工具的dsp等工程文件,這樣管理項目就更方便了。
Ⅵ Linux下面cmake命令意義cmake -D CMAKE_BUILD_TYPE=RELEASE
"怎麼知道在源代碼目錄中編譯的呢?" 這個是因為後邊的那 .. 的緣故, .. 表示上層目錄. 那.. 就是<path to the OpenCV source directory>
-D 相當於就是定義, -D 可以理解為告訴cmake 後邊我要定義一些參數了, 你每定義一個就在前邊加上-D就是了
CMAKE_BUILD_TYPE 這種東西往往是在CMakeList.txt 中定義的, 這個是你要編譯的類型, 一般的選擇有debug,release, 但是不確定
CMAKE_INSTALL_PREFIX 這個是安裝路徑.
Ⅶ linux 怎麼查看是否安裝cmake
#whichcmake
#whereiscmake
#whatiscmake
都可以判斷
Ⅷ linux裡面安裝的cmake 軟體到底是干什麼用的啊
CMake是一個跨平台的安裝(編譯)工具,可以用簡單的語句來描述所有平台的安裝(編譯過程)。他能夠輸出各種各樣的makefile或者project文件,能測試編譯器所支持的C++特性,類似UNIX下的automake。只是
CMake
的組態檔取名為
CmakeLists.txt。Cmake
並不直接建構出最終的軟體,而是產生標準的建構檔(如
Unix
的
Makefile
或
Windows
Visual
C++
的
projects/workspaces),然後再依一般的建構方式使用。這使得熟悉某個集成開發環境(IDE)的開發者可以用標準的方式建構他的軟體,這種可以使用各平台的原生建構系統的能力是
CMake
和
SCons
等其他類似系統的區別之處。
CMake
可以編譯源代碼、製作程式庫、產生適配器(wrapper)、還可以用任意的順序建構執行檔。CMake
支持
in-place
建構(二進檔和源代碼在同一個目錄樹中)和
out-of-place
建構(二進檔在別的目錄里),因此可以很容易從同一個源代碼目錄樹中建構出多個二進檔。CMake
也支持靜態與動態程式庫的建構。
「CMake」這個名字是「cross
platform
make」的縮寫。雖然名字中含有「make」,但是CMake和Unix上常見的「make」系統是分開的,而且更為高階。
Ⅸ linux 怎麼用cmake安裝mysql
方法/步驟
1
在安裝mysql資料庫伺服器前,確保你的linux系統是可以連接網路的,下面我們將通過源碼方式來安裝mysql首先通過putty登入進你的Linux系統,確保系統中已經安裝的gcc c++ 等編譯環境,因為mysql從5.5版本開始是使用cmake編譯的,如果三個環境都沒安裝,可以使用下面的命令進行安裝:yum -y install make gcc-c++ cmake bison-devel ncurses-devel
2
查找系統里是否已經安裝了mysql資料庫的相關組件,使用命令:rpm -qa | grep mysql 進行查找,如果查找到,可以使用下面命令進行強制卸載:rpm -e --nodeps 包名
如果你當時在安裝Linux系統時,使用的默認的安裝選項,這一步可以跳過;
3
然後我們來下載mysql的源碼安裝包,使用下面的命令來下載wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.24.tar.gz下載的時間可能有點漫長,請耐心等待;
4
下載完成後,使用命令: ll 可以查看當前目前下存在 mysql-5.6.24.tar.gz文件然後使用下面的命令解壓壓縮包:tar -zxvf mysql-5.6.14.tar.gz
然後使用命令: ll 可以查看當前目前下存在 mysql-5.6.24 目錄使用命令:cd mysql-5.6.24 切換到 mysql-5.6.24 這個目錄下;
上面的步驟完成後,下面我們來開始編譯mysql文件了,首先配置編譯的相關參數,執行如下命令:cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_DATADIR=/usr/local/mysql/data \-DSYSCONFDIR=/etc \-DWITH_MYISAM_STORAGE_ENGINE=1 \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_MEMORY_STORAGE_ENGINE=1 \-DWITH_READLINE=1 \-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \-DMYSQL_TCP_PORT=3306 \-DENABLED_LOCAL_INFILE=1 \-DWITH_PARTITION_STORAGE_ENGINE=1 \-DEXTRA_CHARSETS=all \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci
接著使用 make && make install 來編譯並安裝mysql也可以分兩步來執行:先運行 make ,完成後再運行 make install整個過程大概需要30分鍾左右,請耐心等待,這段時間你可以做點別的事
安裝完成後,我們還要建立mysql的配置,首先設置mysql的訪問許可權,使用命令查看是否已經存在mysql用戶及用戶組,查看用戶列表命令:cat /etc/passwd 查看用戶組列表命令:cat /etc/group
如果不存在,我們就要創建:添加用戶組命令:groupadd mysql添加用戶:useradd -g mysql mysql然後來修改之前安裝的mysql所在目錄的訪問的用戶及用戶組輸入命令:chown -R mysql:mysql /usr/local/mysql
然後是初始化mysql配置,切換到mysql安裝目錄:cd /usr/local/mysql執行初始化配置腳本,創建mysql自帶的系統資料庫:./scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
修改mysql配置文件,輸入命令:vi my.cnf然後按鍵盤的"insert"鍵,然後通過鍵盤的方向鍵來移動游標到要修改的行,添加如下內容:server-id=1 report-port=3306 port=3306 datadir=/usr/local/mysql/datasocket=/var/lib/mysql/mysql.sock
這一步很重要,需要更改該配置文件的所有者:chown -R mysql:mysql /usr/local/mysql/my.cnf否則下面啟動mysql服務會報錯;
添加mysql到開機啟動項,並啟動mysql服務( 註:在啟動MySQL服務時,會按照一定次序搜索my.cnf,先在/etc目錄下找,找不到則會到你安裝的mysql目錄找,在本例中就是 /usr/local/mysql/my.cnf。注意:在CentOS 6.4版操作系統的最小安裝完成後,在/etc目錄下會可能會存在一個my.cnf,需要將此文件更名為其他的名字,如:/etc/my.cnf.bak,否則,該文件會干擾源碼安裝的MySQL的正確配置,造成無法啟動。 重命名的命令是:mv my.cnf my.cnf.bak)cp support-files/mysql.server /etc/init.d/mysqld #復制腳本 chmod +x /etc/init.d/mysqld #增加可執行許可權 chkconfig --add mysqld #增加至sysV服務 chkconfig mysqld on #開機自啟動service mysqld start #啟動mysql服務netstat -aux|grep mysq #查看啟動的mysql進程
添加mysql的環境變數,以方便以後的操作輸入密碼:vi /etc/profile在文件的底部添加如下內容:PATH=/usr/local/mysql/bin:$PATHexport PATH保存並退出,輸入輸入命令,使配置立即生效:source /etc/profile
安裝好的mysql,默認root帳戶帳戶為空,下面我們來修改密碼輸入命令:mysql -uroot 回車後,然後輸入命令:SET PASSWORD = PASSWORD('123456');
設置完成後,輸入命令:quit; 退出mysql環境;
設置好 mysql密碼,需要輸入如下命令才能夠正確登錄進mysql:輸入命令:mysql -uroot -p 回車後,會提示你輸入密碼,輸入正確並執行後,會看到以mysql>開始的提示行,在這里你可以輸入任何有效的sql查詢語句:比如輸入:show databases; 來顯示所有的資料庫,注意後面的分號不能丟失,它標識一行命令的結束。至此,恭喜你,mysql安裝成功了。