我想创建一个共享库,它只包含一个std :: map来查找函数指针。目的是合并几个静态库(插件),它们都提供相同的类型函数。 每个插件都有一个唯一的整数id。 但是,只应收集编译时可用的库。目前我正在使用cmake和c ++预处理器的混合:
的CMakeLists.txt:
const char*
共享库:
if(EXISTS ${plugin1})
message("found plugin1")
include_directories(${plugin1}/include)
add_definitions(-DPLUGIN1)
find_library(plugin1Lib plugin1 ${plugin1}/lib)
target_link_libraries(${PROJECT_NAME} ${plugin1Lib})
endif()
效果很好,但我认为这很复杂。有没有更好的方法来实现我想要的? 谢谢!