導航:首頁 > 源碼編譯 > linux下使用CMake編譯程序

linux下使用CMake編譯程序

發布時間:2023-06-15 14:01:51

A. linux下cmake編譯opencv 為什麼這么慢

是你的編譯器版本不對,
You
probably
need
to
select
a
different
build
tool.
在點擊configure時,會出來一個選擇編譯器的框,你選一個你機器里有的編譯器就可以了。

B. 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」系統是分開的,而且更為高階。

C. 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 這個是安裝路徑.

D. 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安裝成功了。

E. Linux下gcc/g++,make和cmake的區別

gcc是C語言編譯器,而g++則是C++語言編譯器,雖然gcc命令也可以用來編譯C++語言的源碼,但是它最終是要調用g++的。
make工具通過你提供的一個名為Makefile的文件,根據Makefile的內容來決定如何編譯源文件。而關於make和cmake的區別,你可以理解為make需要使用Makefile,而cmake是產生Makefile的工具。

F. linux下才有CMake編譯websocket庫生成lib和bin

1、確定arm-linux-gcc裝好了,如下:
[root@localhost hello1]# arm-linux-gcc -v
Using built-in specs.
Target: arm-none-linux-gnueabi
Configured with: /scratch/julian/lite-respin/linux/src/gcc-4.3/configure --build=i686-pc-

G. 如何在Linux下安裝cmake-gui

OpenCV 2.2以後的版本需要使用Cmake生成makefile文件,因此需要先安裝cmake;還有其它一些軟體都需要先安裝cmake
1.在linux環境下打開網頁瀏覽器,輸入網址:http://www.cmake.org/cmake/resources/software.html,找到最新版本的位置。一般開放源代碼軟體都會有兩個版本發布:Source Distribution 和 Binary Distribution,前者是源代碼版,你需要自己編譯成可執行軟體。後者是已經編譯好的可執行版,直接可以拿來用的。

2.在linux環境下打開終端,輸入:
getconf LONG_BIT

如果結果是64表示該系統是linux64位的,如果結果是32則表示系統是linux32位。
3.我現在所用的這台是64位,因此在cmake安裝包的網站中選擇binary distribution下的linux x86_64下的cmake-3.6.0-Linux-x86 64.tar.gz壓縮包,點擊,下載。默認下載到了home/DOWNLOAD
4.把下載好的包復制到指定路徑,比如/home/bnu,在當前文件夾中打開終端,輸入
tar zxvf cmake-3.6.0-Linux-x86 64.tar.gz

在該目錄下多了一個解壓後的文件夾
5.打開新的終端,輸入

該bashrc文件不用提前建立,路徑也根據自己的情況改變,我定的路徑與解壓後的cmake包路徑是一致的
6.此時會打開一個文件,找到export PATH=這些行,在這些行的下面另外添加一行,從而設置環境變數
export PATH=$PATH:/home/bnu/cmake-3.6.0-Linux-x86 64/bin

輸入完畢保存
7.查看版本,測試是否安裝成功:打開終端,輸入
cmake --version

結果是:cmake version 3.6.0(安裝cmake成功!)

H. 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編譯程序相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:758
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:672
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:486
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:383
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:350
風翼app為什麼進不去了 瀏覽:779
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:151
伊克塞爾文檔怎麼進行加密 瀏覽:893
app轉賬是什麼 瀏覽:163