1. 程式人生 > >linux下使用cmake編譯程式碼

linux下使用cmake編譯程式碼

1、安裝cmake
yum install -y gcc gcc-c++ make automake
yum install cmake
2、cmake配置檔案
1)編寫程式碼根目錄下的CMakeLists.txt
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -rdynamic -Wno-deprecated -pg  -lmysqlcppconn -lcurl -luuid -
lutil -lpthread -lboost_thread -lboost_system  -lrt -ftest-coverage -fprofile-arcs -lssl  -lcrypto")
#set(SERVERX_INCLUDE_DIR "" CACHE FILEPATH "Path to casablanca include dir")
#include_directories (
#include
#"${SERVERX_INCLUDE_DIR}")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
INCLUDE_DIRECTORIES(include)
add_subdirectory(src/common/tinyxml)
find_package(Boost COMPONENTS system REQUIRED)
find_package(OpenSSL REQUIRED)
SET(DIR_SRCS src/communication/server.cpp)  
ADD_EXECUTABLE(ServerX ${DIR_SRCS})       
target_link_libraries(ServerX ${Boost_SYSTEM_LIBRARY} ${OPENSSL_LIBRARIES})
target_link_libraries(ServerX tinyxml)
2)src/common/tinyxml下的CMakeLists.txt:
set (SOURCES_FILES  
    tinystr.cpp  
    tinyxml.cpp  
    tinyxmlerror.cpp  
    tinyxmlparser.cpp)
include_directories(../../../include)
ADD_LIBRARY(tinyxml STATIC ${SOURCES_FILES})
3、編譯
1)工程根目錄下 mkdir build.release
2)cd build.release
3)CXX=g++ cmake .. -DCMAKE_BUILD_TYPE=Release
4)make

相關推薦

linux使用cmake編譯程式碼

1、安裝cmake yum install -y gcc gcc-c++ make automake yum install cmake 2、cmake配置檔案 1)編寫程式碼根目錄下的CMakeLists.txt set(CMAKE_CXX_FLAGS "${CMAKE_

LinuxClion編譯Cmake報錯的解決方案

        前段時間,在linux下安裝了一個C++ 開發的神奇,由JetBrain公司開發的IDE--CLion。之所以稱CLion為神器的原因是因為,在linux下沒有比這款IDE更強大的開發工具了。       &n

linuxPHP編譯安裝程式碼踩過的坑解決

坑1:編譯之前需要:需要安裝gcc 和 autoconfig,要不然安裝編譯不成功的!(如果系統有就不需要安裝了!) 坑2:解壓出來的PHP檔案裡的php.ini xxx 複製到在編譯PHP目錄下etc下。 坑3:如果php.ini 不生效,用命令  php -i | g

Linuxcmake編譯方式

cmake是一個比make更高階的編譯配置工具,它可以根據不同平臺、不同的編譯器,生成相應的Makefile或者vcproj專案。       通過編寫CMakeLists.txt,可以控制生成的Makefile,從而控制編譯過程。cmake自動生成的Makefile不僅可以

LINUXPHP編譯添加相應的動態擴展模塊so(不需要重新編譯PHP,以openssl.so為例)

down get 階段 很多 習慣 lin 模塊 臨時 操作 本文轉自:原文鏈接 http://www.cnblogs.com/doseoer/p/4367536.html 網上我看到有很多相關的文章都是簡述這個問題的,但畢竟因為LINUX版本眾多,很多LIUNX命令或路

Linuxmemcache編譯安裝與基本使用

清空 .tar.gz 報錯 關閉window eas -- 編譯 url 圖片 memcache是一套分布式的高速緩存系統,特點為key-value 存儲 一、在 linux 編譯安裝memcache、redis等,需要 gcc,make,cmake,autoconf,

Linuxg++編譯thread出錯的的解決方法

ima 方法 解決 g++ bsp 技術分享 inf 編譯 linu 錯誤如下圖所示: 因為thread是C++11新加入的特性,所以我們在用g++編譯的時候不能直接用,需要在g++後面加上 -std=c++0x -pthread 如果是gcc編譯多線程的話則應該要

如何加速Linux編譯速度(加速make)

專案越來越大,每次需要重新編譯整個專案都是一件很浪費時間的事情。Research了一下,找到以下可以幫助提高速度的方法,總結一下。 tmpfs 有人說在Windows下用了RAMDisk把一個專案編譯時間從4.5小時減少到了5分鐘,也許這個數字是有點誇張了,不過粗想想,把檔案放

Linux交叉編譯Android工具鏈

搭建交叉編譯環境 下載Android NDK http://developer.android.com/sdk/ndk/index.html 我這邊選擇下載Linux 64-bit(x86),android-ndk-r9d-linux-x86_64.tar.bz2。

Linux交叉編譯生成iOS工具鏈指導手冊

1.前言  我們需要在Linux系統上實現交叉編譯並動態下發Android和iOS的靜態庫或者動態庫,而其中最為關鍵的就是Android NDK和iOS工具鏈的生成。由於Android 的實現起來相對容易,這裡重點講述iOS端生成工具鏈的實現過程。下面的操作需要在Macbook上到處S

Linux maven 編譯 spark 原始碼

1. 安裝maven  1)將安裝包解壓到指定目錄: [[email protected] apache-maven-3.5.3]# tar -zxf /opt/maven/apache-maven-3.5.3-bin.tar.gz -C /usr/local/

Linux原始碼編譯安裝mariadb資料庫

環境:centos7 準備:mariadb-10.2.18.tar 資料庫安裝包 [[email protected] ~]# rz Transferring mariadb-10.2.18.tar.gz... 第一步: 建立mysql使用者 [[email 

音訊模組基於最新Webrtc在Linux編譯

Webrtc中音訊模組的單獨編譯 版權宣告:本文為博主原創文章,若需轉載請註明出處。 在我們的嵌入式專案中,想要使用webrtc的音訊處理邏輯及相關網路功能。由於整個webrtc工程過於巨大,所以嘗試單獨編譯某個模組以供呼叫。 見上一篇部落格,經過編譯的音訊模組效果顯著,可是在

LVGUI在嵌入式LINUX編譯

    本文比較亂,算是一個隨筆,記錄一下將LVGUI交叉編譯到MIPS架構的嵌入式Linux裝置中,主要關於自己編寫對應的makefile來對LVGUI進行編譯。 首先,Makefile 最好和lv的幾個工程目錄在同一目錄下,如下圖: 其次,為了讓標頭檔案(h檔

Windows 和 linux CUnit編譯安裝教程

本文大部分均參看以下連結,安裝當中有些地方不詳細,我添加了 首先要安裝mingw和msys,下載地址:點選開啟連結 1. 安裝  1)準備環境:Win7安裝MinGW 1.1)Win7已就緒 1.2)下載 MinGW:www.mingw.org =>

windowscmake編譯opencv3.4.1+opencv_contrib報錯

問題一: CMake Warning (dev) at cmake/common.cmake:5 (source_group): Syntax error in cmake code at C:/yumen/wxgisgdal-read-only/c

Linuxsend錯誤程式碼32

問題描述:今天寫程式,socket後send出現這個問題,send的返回值為-1,而errno為32,這個錯誤程式碼為broken pipe,即管道破裂。 問題形成原因:後來通過排查研究,發現出現該種問題出現的可能性為以下兩種: 1.socket失敗,與伺服器端的

linuxnginx編譯安裝(抄別人的,方便檢視)

原路徑:https://blog.csdn.net/youcijibi/article/details/75050993 正式開始前,編譯環境gcc g++ 開發庫之類的需要提前裝好。 如果是ububtu平臺初始安裝編譯安裝則使用如下指令:   apt-get install build-e

Linux原始碼編譯php7

1.安裝依賴包 yum install -y gcc gcc-c++ make zlib zlib-devel pcre pcre-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-

C++ Boost在Windows和Linux編譯安裝

C++作為歷史上最成功的語言之一,除了它具有面向物件的性質之外,還有一個非常重要的創新,那就是泛型程式設計。泛型的思想其實是為所有問題提供一個解決方案的模版,程式設計師只需把每次的具體問題放到模版裡面,那麼就可以獲得該問題的解決方案,利用模版做到具體問題具體分析。C++ STL毫無疑問是泛型思想的一