我想使用CMake将open62541库包含到Visual Studio中我现有的C ++项目中。 open62541本身使用CMake作为构建工具。项目结构:

MyOPC
│   CMakeLists.txt
│   MyOPC.cpp
│   MyOPC.h
├───.vs
└───open62541
    │   CMakeLists.txt
    ├───arch
    │   │    CMakeLists.txt
    ├───deps
    ├───doc
    ├───examples
    ├───include
    ├───plugins
    ├───src
    ├───tests
    └───tools


我想用我的项目构建open62541,以便它将生成open62541.h文件。如何使用CMake做到这一点?

最佳答案

您可以简单地将open62541的子目录添加到主CMake中,然后再设置相应的CMake选项。然后还将open62541目标添加到您自己的目标中,并添加合并后的源文件。

例如。进行合并:

set(UA_ENABLE_AMALGAMATION ON CACHE BOOL "" FORCE)
set(UA_LOGLEVEL 300)
add_subdirectory(open62541)

add_dependencies(${PROJECT_NAME} open62541 open62541-amalgamation-source open62541-amalgamation-header)
set (${PROJECT_NAME}_SRCS ${${PROJECT_NAME}_SRCS} "${PROJECT_BINARY_DIR}/open62541/open62541.c")


确保将_SRCS添加到自己的目标源中。

此处执行类似的操作:
https://github.com/Pro/open62541-arduino

10-08 19:27