CMake VS工程總結
1.設定輸出字尾
set(CMAKE_DEBUG_POSTFIX "d")
2.設定輸出目錄
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
3.設定檔案虛擬目錄
SOURCE_GROUP(AppCore FILES ${AppCore_H_CPP})
4.設定工程虛擬目錄
add_subdirectory(子工程資料夾)
add_dependencies(子工程名 依賴其它的工程名)
SET_PROPERTY(GLOBAL PROPERTY USE_FOLDERS ON)
SET_PROPERTY(TARGET 子工程名 PROPERTY FOLDER "虛擬目錄名")
5.設定生成動態庫,靜態庫選項
set(BUILD_SHARED_LIBS "On")
#set(BUILD_SHARED_LIBS "Off")
6.從環境變數裡查詢庫
find_path(3rdparty_INCLUDE_DIR zlib.h ENV 3rdparty_INCLUDE_DIR)
find_path(3rdparty_LIB_DIR zlib.lib ENV 3rdparty_LIB_DIR)
7.Boost在CMake中的使用
設定環境變數 Boost_DIR
set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREADED ON)
find_package(Boost 1.49 REQUIRED system thread regex date_time)
target_link_libraries(${PROJECT_NAME} ${Boost_LIBRARIES})
8.除錯庫和非除錯庫連線
target_link_libraries(debug ${} optimized ${})
9.輸出動態庫和靜態庫
if(${BUILD_SHARED_LIBS} STREQUAL "On")
add_library(${OUT_NAME} SHARED ${SRC} ${HEADER} ${SOUECE})
ADD_DEFINITIONS(-DXXX_LIBRARY)
else()
add_library(${OUT_NAME} STATIC ${SRC} ${HEADER})
ADD_DEFINITIONS(-DXXX_LIBRARY_STATIC)
endif()
#if defined(_MSC_VER) || defined(__CYGWIN__) || defined(__MINGW32__) || defined( __BCPLUSPLUS__) || defined( __MWERKS__)
# if defined( XXX_LIBRARY_STATIC )
# define XXX_EXPORT
# elif defined( XXX_LIBRARY )
# define XXX_EXPORT __declspec(dllexport)
# else
# define XXX_EXPORT __declspec(dllimport)
# endif
#else
# define XXX_EXPORT
#endif
相關文章
- cmake配置VS工程配置使用dll
- cmake的使用總結
- CMake技術總結
- cmake執行工程
- Android cmake命令總結以及指令碼模板Android指令碼
- 軟體工程總結軟體工程
- c++ Cmake工程(4) opevslam ros工程模式C++SLAMROS模式
- 使用CMake構建Android JNI工程Android
- Windows下Cmake與VS聯合制作dllWindows
- CMake生成eclipse的工程並匯入Eclipse
- React Hooks工程實踐總結ReactHook
- c++ Cmake工程(3)平行目錄 opevslam工程模式C++SLAM模式
- 使用vs2015+cmake編譯opencv+opencv_contrib編譯OpenCV
- c++ Cmake工程(1)同級目錄C++
- CMake編譯Qt工程時的問題編譯QT
- vc-vs2019編譯報錯總結編譯
- 工程熱力學複習總結
- CMake構建學習筆記16-使用VS進行CMake專案的開發筆記
- cmake 連結動態連結庫
- 前端開發常用的VS Code外掛總結前端
- 面試總結——Java高階工程師面試Java工程師
- 測試工程師的面試總結工程師面試
- 從編譯連結到cmake編譯
- 【經驗分享】win10 cmake 構建 Tengine 工程Win10
- Python-爬蟲工程師-面試總結Python爬蟲工程師面試
- 面試問題總結(Java工程師 20190301)面試Java工程師
- 最近Java高階工程師面試總結Java工程師面試
- Java工程師修煉之路(校招總結)Java工程師
- 轉:測試工程師的面試總結工程師面試
- cmake:Hello cmake
- ASP.Net 管道模型 VS Asp.Net Core 管道 總結ASP.NET模型
- c++ Cmake工程(2)平行上級目錄 常用模式C++模式
- 前端工程師的 2018 年總結 | 掘金年度徵文前端工程師
- 軟體工程單元測試作業總結軟體工程
- 【CMake】掌握CMake基本操作
- cmake報錯CMake Error: Could not find CMAKE_ROOTError
- 【演算法工程師】Python面試問題總結演算法工程師Python面試
- 一個兩年Java工程師的面試總結Java工程師面試