編譯原始碼 含CMake

2021-10-23 18:15:38 字數 3191 閱讀 5593

習慣了使用命令列,下面介紹windows下配置命令列編譯c++和c#**,不用使用工具建立工程,解決方案這麼笨重

一、windows下使用cl.exe編譯c++**:

1.新增path:

c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.16.27023\bin\hostx64\x64

2.新增include:c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.16.27023\include

c:\program files (x86)\windows kits\10\include\10.0.17763.0\shared

c:\program files (x86)\windows kits\10\include\10.0.17763.0\ucrt

c:\program files (x86)\windows kits\10\include\10.0.17763.0\um

c:\program files (x86)\windows kits\10\include\10.0.17763.0\winrt

3.新增lib:

c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.16.27023\lib\x64

c:\program files (x86)\windows kits\10\lib\10.0.17763.0\um\x64

c:\program files (x86)\windows kits\10\lib\10.0.17763.0\ucrt\x64

二、windows下使用csc.exe編譯c#**:

新增path:   c:\program files (x86)\microsoft visual studio\2017\community\msbuild\15.0\bin\roslyn;

「cl  /?「、「csc  /?」

編譯c++**記錄:

cl test1.cpp   /fo:objs/test1.obj  /fe:outs/test1.exe

outs\test1.exe

編譯c#**記錄:

csc  /out:outs/test1.exe  test1.cs

.\outs\test1.exe//在 mac下編譯c#同上,但執行時要借助 mono,格式如右: mono ./outs/test1.exe

//mac下的 mono安裝使用參考mono官網:

中文顯示亂碼:

chcp//檢視當前系統編碼 

chcp 65001//臨時更改會話窗囗的編碼

65001 utf-8**頁

950 正體中文

936 簡體中文預設的gbk

437 ms-dos美國英語

四、windows cmd下的常用命令:

建立目錄: md / mkdir  ***

刪除目錄:rd / rmdir  ***x

建立空檔案 :    type nul>test.cs      //此命令列也是在命令列中瀏覽檔案內容

建立非空檔案:  echo [內容]>test.txt  

刪除檔案: del   ***.***

使用:notepad  test.cs

notepad++  test.cs    //notepad++**有高亮等顏色和縮排,更好看

cmake:

cmake簡明教程 例項工程演示(含字幕):

opengl es抖音分屏效果實現 :

ndk cmake交叉編譯 :

android studio cmake :

cmake的工程結構:

根目錄下有cmakelists.txt

子級目錄下也有cmakelists.txt

只要是工程目錄就有cmakelists.txt,且根目錄下的cmakelists.txt會包含子目錄的cmakelists.txt

新增子目錄, 使用add_subdirectory(subfolder),實際上是新增subfolder下的cmakelists.txt

可以巢狀新增,每個帶有cmakelists.txt的目錄就是乙個例項工程,外層的代表乙個目錄

需要引用另外的目錄下的標頭檔案: 

include_directories( 

$/samples/base64

) 樣例1:設定(簡單的)工程檔案:

project(helloword)

set( src

$/main.cpp

$/lib.cpp

)add_executable( helloword$)

#另外一種方式鏈結本專案下的靜態庫,即新增外部靜態庫

#link_directories(

#   $/build/samples/base64

#)target_link_libraries(

linkage   #最外層大專案下的子專案(靜態庫)

base64

#        "base64"  #它內部查詢規則是查詢libbase64.a (在前面加lib,且尾部加.a)

ws2_32    #這是編譯器自帶的庫

)##link多個庫時順序有關係的,所以在編譯linkage時,它會先編譯base64

##鏈結編譯器自帶的庫時,不需要使用link_directories()命令 //編譯器會自帶新增

生成靜/動態庫:

set( src

$/base64.cpp

$/base64.h

....

)add_library( base64 static$)

add_library( base64_dynamic shared$)

生成動態庫時,會生成兩個庫檔案: 1個***.dll(動態庫,大的)和1個 ***.dll.a(動態庫對應的靜態庫,很小的,其實是導入庫), 鏈結時是鏈結到.a檔案,執行的時候才載入.dll

cmake安裝mysql原始碼

cd usr local src tar zxvf cmake 2.8.4.tar.gz cd cmake 2.8.4 bootstrap gmake gmake install cd 安裝mysql 最新版軟體通過原始碼安裝 新增mysql組和mysql使用者 usr sbin groupadd ...

手動編譯原始碼安裝mysql 原始碼編譯安裝mysql

1 安裝mysql需要的依賴包 yum y install ncurses devel libaio devel 2 安裝編譯mysql需要的軟體 mysql 有3個版本分支 5.0 5.1系列 5.4 5.7系列 6.0 7.1群集產品系列 最早的mysql 5.0 5.1產品 直接.config...

chromium 原始碼編譯

以下內容基於 linux ubuntu3.0.0 16 generic 28 ubuntu smp fri jan 27 17 44 39 utc 2012 x86 64 gnu linux 參考網頁給出的步驟 1 安裝 depot tools,cd 到你想要的工作目錄 1.1 通過 svn 獲取 ...