是否能够在不手动编写参数字符串进入 target_link_options
的情况下,使用 CMake 将目标库封装在 --start-group
/--end-group
中?
背景:在将 C++ 可执行文件链接到列表中的库时(使用 g++ 7.5.0),我遇到了库排序问题。我最近了解到,在 gcc/g++ 中有 --start-group
和 --end-group
选项,允许重复搜索存档。我想在使用 CMake 生成我的构建文件时启用这些选项。
给定目标库名称列表(例如 target_link_libraries(myTarget mylibrary1 mylibrary2 ${MY_VARIABLE_LIST_OF_LIBRARIES} ...)
),是否可能在不必手动键入参数的情况下将所有库封装在 --start-group
/--end-group
中,如target_link_options(myTarget PUBLIC "--start-group -lmylibrary1 -lmylibrary2 ... --end-group")
?(我特别想避免追踪 ${MY_VARIABLE_LIST_OF_LIBRARIES}"
的内容以手动添加包含在该变量中的所有库的 -l
。)