带引号的 target_link_options 参数忍者 更新

问题描述

我的 CMakeLists.txt 的一部分:

...
set(PATH_1 ${PROJECT_SOURCE_DIR}/parser)
set(PATH_2 ${PROJECT_SOURCE_DIR}/block)
string(REPLACE "/" "\\" PATH_1 ${PATH_1})
string(REPLACE "/" "\\" PATH_2 ${PATH_2})
set(paths
    "\"${PATH_1}\""
    "\"${PATH_2}\"")

message("-j${paths}")
target_link_options(${target} PRIVATE
    "-j${paths}")
...

输出cmake:

-j"C:\some path\to directory_1\parser";"C:\some path\to directory_2\block"

但是在 build.ninja 中:

LINK_FLAGS = ... -j\"C:\some path\to directory_1\parser\" \"C:\some path\to directory_2\block\"

需要:

LINK_FLAGS = ... -j"C:\some path\to directory_1\parser";"C:\some path\to directory_2\block"

我该如何解决这个问题?

更新

我添加到 CMakeLists.txt:

...
set(PATH_1 ${PROJECT_SOURCE_DIR}/parser)
set(PATH_2 ${PROJECT_SOURCE_DIR}/block)
string(REPLACE "/" "\\" PATH_1 ${PATH_1})
string(REPLACE "/" "\\" PATH_2 ${PATH_2})
set(paths
    "\"${PATH_1}\""
    "\"${PATH_2}\"")

string(REPLACE ";" "\\;" paths "${paths}")  # <--- added
message("-j${paths}")
target_link_options(${target} PRIVATE
    "-j${paths}")
...

并在 build.ninja 中输出:

LINK_FLAGS = ... -j\"C:\some path\to directory_1\parser\";\"C:\some path\to directory_2\block\"

它仍然是删除'\'符号

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...