问题描述
我的 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 (将#修改为@)