使用CLion在MacOS、Linux上編譯C++代碼


背景介紹:我們已經有一套代碼在windows和android上編譯通過了,目前需要將這些代碼在MacOS和Linux上編成動態鏈接庫,所以直接使用android的編譯宏,少量修改即可正常編譯。這里只是介紹如何使用CLion進行跨平台編譯。

 

1.使用CLion的Import Project from Sources進行代碼導入

2.只需要勾選源文件即可

導入后

3.修改CMakeLists.txt

1)設定編譯宏,通過add_definitions(-D宏定義)的方式,開啟SQLITE3_EXPORTS、SQLITE_ENABLE_COLUMN_METADATA、SQLITE_ENABLE_RTREE宏

2)設定變量,通過set(變量名 變量值)的方式,定義通用變量

3)不同平台加以區分

4)設定引用頭文件目錄

5)設定引用庫文件目錄

6)設定編譯結果,add_executable則會編譯成可執行文件,add_library則會編譯成鏈接庫,通過SHAED關鍵字聲明為動態鏈接庫(windows下為dll文件,MacOS下為dylib文件,Linux下為so文件),通過STATIC關鍵字聲明為靜態鏈接庫(windows下為lib文件,MacOS和Linux下為a文件)

7)重命名編譯結果,由於上一步設定了兩個編譯成果,一個是靜態鏈接庫,一個是動態鏈接庫,編譯成果是mzsqlite_shared.dylib和mzsqlite_static.a,不是想要的結果,需要將成果重命名成mzsqlite.dylib和mzsqlite.a

8)聲明需要鏈接的庫,sqlite沒有依賴庫,這里貼的是另外一個庫的配置

9)重定位編譯成果位置,目前沒有找到好的方法進行重新位,只是通過CLion->Preferences設置將編譯成果保存到源代碼所在目錄下

10)SQLite編譯CMakeLists.txt全貌

4.編譯成果

1)設置編譯條件,通過Run->Edit Configurations進行設置,可以設置編譯目標、Release或是Debug等

2)編譯,通過Run->Build進行編譯,在輸出區進行錯誤、警告定位和處理

3)查看編譯成果

5.在Linux上編譯,基本上是將MacOS上配置好的拷到Linux上打開編譯即可

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM