gpt4 book ai didi

c++ - 制作。异常行为

转载 作者:行者123 更新时间:2023-11-28 02:06:10 26 4
gpt4 key购买 nike

让我们考虑两个简化的 CMakeLists.txt

set(GTEST "/usr/local/lib/libgtest.a")
set(GMOCK "/usr/local/lib/libgmock.a")
...
target_link_libraries(project ${GTEST} ${GMOCK})

当我 cmake 然后 make 它工作。但是,以下内容不起作用:

set(GTEST "/usr/local/lib/libgtest.a  /usr/local/lib/libgmock.a")
...
target_link_libraries(project ${GTEST})

当我输入 cmake 时,它工作正常。但是当我把 make 它给了我:

make[3]: *** There is no rule for '/usr/local/lib/libgtest.a /usr/local/lib/libgmock.a'

为什么?

最佳答案

这两个例子不是一个意思。第一个示例将两个库传递给 target_link_libraries。第二个传递一个库名称,其中包含两个空格。如果你想在一个变量中传递两个库,使用

set(GTEST "/usr/local/lib/libgtest.a" "/usr/local/lib/libgmock.a")

至于为什么失败是一条如此奇怪的消息,我怀疑 CMake 部分缺少转义(尽管您的路径会有一个带有尾随空格的目录名称,这在实践中可能不会发生)。

关于c++ - 制作。异常行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37351173/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com