ker*_*azi 5 c++ cmake visual-studio
我想使用 CMake + Visual Studio 在 Windows 下构建一个具有很多依赖项的应用程序,例如zlib. 它们都是静态库。
我已经尝试过了ADD_SUBDIRECTORY,这工作得很好,但不是只构建取决于目标,而是(zlibstatic)构建所有目标。
如何删除未使用的目标(及其解决方案)或仅选择一个?主要是我正在寻找功能来定义仅需要的目标。
我的一部分CMakeLists.txt:
ADD_SUBDIRECTORY("${CMAKE_CURRENT_SOURCE_DIR}/deps/zlib")
TARGET_INCLUDE_DIRECTORIES(MyProject PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/deps/zlib")
TARGET_LINK_LIBRARIES(MyProject zlibstatic)
Run Code Online (Sandbox Code Playgroud)
我终于知道该怎么做了。
\n\nMyProject\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80build <- here I call cmake\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80deps\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80zlib\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80CMakeLists.txt\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80inc\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80src\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80CMakeLists.txt\nRun Code Online (Sandbox Code Playgroud)\n\n# Include project but remove all tartgets\nADD_SUBDIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/deps/zlib EXCLUDE_FROM_ALL)\n\n# Use only specific one target\nADD_DEPENDENCIES(MyProject zlibstatic)\n\n# Include dirs from zlib source directory and from output directory becuse it generates some headers\nTARGET_INCLUDE_DIRECTORIES(MyProject PRIVATE\n ${CMAKE_CURRENT_SOURCE_DIR}/deps/zlib\n ${CMAKE_CURRENT_BINARY_DIR}/deps/zlib\n)\n\n# Just to create beautiful structure in project tree\nSET_PROPERTY(TARGET zlibstatic PROPERTY FOLDER Deps)\n\n# Link after all\nTARGET_LINK_LIBRARIES(MyProject zlibstatic)\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1864 次 |
| 最近记录: |