1. 程式人生 > >CMake學習-新增標頭檔案路徑,庫路徑,庫

CMake學習-新增標頭檔案路徑,庫路徑,庫

CMake中,新增標頭檔案路徑,對應的函式叫include_directories。然後在引數中,把所有需要新增的路徑,加進去就可以了。

新增庫路徑,對應的函式叫LINK_DIRECTORIES,同樣,在引數中,把所有的路徑加進去就可以了。CMake中的函式呼叫,是不區分大小寫的,大小寫可以混合使用。

新增庫,對應的函式叫LINK_LIBRARIES,把所有的庫加進去即可。這裡有一個注意事項,這個不需要我們手動新增.lib這個字尾了,挺方便的。

OSG中的HelloWorld編譯

下面說明OSG中的HelloWorld,如何自己寫CMakeLists.txt來編譯。
如下圖所示,建立2個檔案,名稱如下。
這裡寫圖片描述

然後CMakeLists.txt檔案中的內容如下:

cmake_minimum_required(VERSION 3.4)
project (Hello)
include_directories("D:/OSGEARTH/include")
LINK_DIRECTORIES("D:/OSGEARTH/lib")
LINK_LIBRARIES(osg osgDB osgViewer)
add_executable(HelloOSG HelloOSG.cpp)

我這裡用的3.4.0的CMake版本。我的所有OSG相關的內容,都放在D:/OSGEARTH下面。

HelloOSG.cpp中的內容如下:

#include <osgDB/ReadFile>
#include <osgViewer/Viewer> int main(int argc, char** argv) { osgViewer::Viewer viewer; osg::Node* cow = osgDB::readNodeFile("cow.osg"); viewer.setSceneData(cow); return viewer.run(); }

然後執行CMake,生成如下內容:
這裡寫圖片描述

然後這裡需要切換到Release版本,進行編譯。生成成功並執行。檢視之所以Debug版本編譯有問題,發現依賴庫為osg.lib而不是osgd.lib,也就是說依賴庫是Release版的。

那怎麼才能新增Debug版的依賴庫呢?

相關推薦

CMake學習-新增檔案路徑路徑

CMake中,新增標頭檔案路徑,對應的函式叫include_directories。然後在引數中,把所有需要新增的路徑,加進去就可以了。 新增庫路徑,對應的函式叫LINK_DIRECTORIES,同樣,在引數中,把所有的路徑加進去就可以了。CMake中的函式呼

CMake新增檔案檔案連結檔案

原文地址:http://www.cnblogs.com/binbinjx/p/5626916.html 羅列一下cmake常用的命令。 CMake支援大寫、小寫、混合大小寫的命令。 1. 新增標頭檔案目錄INCLUDE_DIRECTORIES 語法: include_directories([AFTE

Linux中C/C++編譯新增檔案路徑方式

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

原子STM32例程不用新增檔案的原因是SYS.H

大家好,在新建工程的時候給新增進去的韌體庫檔案(我用的是mini開發板,例子是跑馬燈的),例如放在USER目錄下,放在CORE目錄下的檔案,為什麼到最後main函式裡面,只有SYSTEM目錄下的這三個檔案被包含進來的呢 677a2804c82647b459883b2c0fcd4363_894.

vscode新增檔案路徑

win+p 。選擇c_cpp_properties.json { "configurations": [ { "name": "Linux", "includePath": [ "${workspaceFolder}/**", "/usr/src/linux

C語言如何定義新增檔案

C語言標頭檔案的常用格式如下: #ifndef LABLE #define LABLE //程式碼部分 #endif 其中,LABLE為一個唯一的標號,命名規則跟變數的命名規則一樣。 常根據它

codeblock新增檔案路徑和靜態路徑(轉自CSDN使用者jiao319)

通常在一些專案中需要使用外部的標頭檔案和靜態庫檔案,codeblock通過如下方法新增標頭檔案和庫檔案。以codeblock 10.05為例新增標頭檔案:依次點選project->bulid options->Search directories,在該標籤頁中點

gcc/g++使用第三方新增檔案路徑檔案路徑的方法

本文總結了使用第三方庫函式時將其路徑告訴編譯器(gcc和g++同理)的2種常用方式,並舉例說明了每種方式的具體用法。方法一:在編譯自己的專案時新增-L和-I編譯選項1)新增標頭檔案路徑:-I     #指明標頭檔案的路徑2)新增庫檔案路徑:-L    #指定目錄。link的

VC2010中怎樣新增檔案路徑(外來的檔案)還有lib

編譯器查詢標頭檔案的順序是(1)原始檔(.c或.cpp)所在目錄(2)屬性->C/C++ ->常規->附加包含目錄(3)屬性->VC++目錄->包含目錄   如果你常使用它們,扔進你的VC庫Microsoft Visual Stu

C ++檔案的十大錯誤如何解決這些問題

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

gcc新增檔案的ABC

今天安裝NeutrinoRDPRDP時碰到了一個小問題: libavcodec/avcodec.h:沒有那個檔案或目錄 有過linux下多媒體開發經驗的同學,可能知道libavcodec是ffmpeg 裡面的內容。 首先判斷是否安裝了ffmpeg,沒有則安裝;安裝了ffmpe

qt新增檔案檔案

往qt裡面新增標頭檔案和庫檔案,需要在.pro檔案中新增INCLUDEPATH +=標頭檔案路徑。還要新增庫檔案的路徑LIBS+=庫檔案路徑\庫檔案.lib。 標頭檔案路徑和庫檔案路徑中含有空格時用雙引號將路徑包含起來就可以了

檔案裡面實現一個函式在兩個cpp中包含則重複定義如果加上inline則不會報錯

為什麼類的定義應當寫在標頭檔案中,從而被多個原始檔包含?比如myclass.h定義了一個類myclass(只定義類,不定義成員函式), file1.cpp裡#include "myclass.h",編譯得到file1.obj; file2.cpp裡也#include "my

無法寫入預編譯檔案,由於 IO 裝置錯誤無法執行此項請求的錯誤的解決

作者:朱金燦        早上檢視伺服器每日構建的情況,發現出現一個詭異的錯誤: fatal error C1085: 無法寫入預編譯標頭檔案:“E:\workspace\MyApp\Intdir\D

關於VS中新增檔案時顯示無法找到檔案的問題

目錄或庫檔名中包含漢字或空格的話,請將其用半形雙引號括住。專案、屬性、C/C++、附加包含目錄:填寫附加標頭檔案所在目錄 分號間隔多項專案、屬性、連結器、附加庫目錄:填寫附加依賴庫所在目錄 分號間隔多

c++中關於直接使用佇列(queue)的學習檔案#include】

對queue的淺認識 首先我們需要定義一個佇列之前,需要知道定義一個什麼型別的佇列,比如結構體型別的; queue<(結構體的名字)> (你定義的佇列名字); queue<node> M; queue中有幾個可以呼叫的函式,我們直接可以使用:

keil中怎麼新增自己的檔案,加入工程儲存路徑。#include還用嗎

keil中怎麼新增自己的標頭檔案,例如:新增#include<led.h>,要把它寫在哪裡,儲存在哪裡,才能編譯後,顯示 #include<reg51.h>#include<led.h>我這樣寫了,沒反應。是不是要新建檔案led.h,再儲存在那個檔案裡面才可以

學習OpenCV時 新增:#include等檔案出現無法編譯的錯誤

 在使用win7+vs2010+opencv2.4.8時   經常在剛建立完專案--->原始檔之後  ,新增標頭檔案:#include<opencv2/core/core.hpp>等出現無法編譯的錯誤,如下所示: 這是環境配置問題:沒有將OpenCV函

Ubuntu下cmakemake時報錯找不到自己寫的檔案

首先要把main.cpp和xxx.h,xxx.c放在同一個資料夾下(方便起見)。 然後在cmakelists.txt如下(cmakelists不需要提及標頭檔案,因為這裡標頭檔案和原始檔在同一個路徑) cmake_minimum_required(VERSION 2.8.3) proje

Qt新增檔案檔案目錄(QCreator)(轉載學習

在使用QtCreator開發影象處理程式的時候想加入Opencv庫來處理圖形,新增標頭檔案,需要編輯工程資料夾下的.pro檔案在檔案中新增以下內容,即可包含標頭檔案的資料夾:   INCLUDEPATH +=D:\OpenCV2.0\vc2008\include