gpt4 book ai didi

cmake - 没有规则使目标/usr/lib/someLib.so

转载 作者:行者123 更新时间:2023-12-04 02:26:34 25 4
gpt4 key购买 nike

构建用于在 buntu 11.04 中工作,现在在 12.04 中没有。
someLib.so的位置有冲突.也就是说,它正在寻找错误的位置。 /usr/lib/here/someLib.so是正确的位置。

当我在 ccmake 中运行“c”配置 cmd 时,它注意到了冲突,...一次。现在ccmake不再提示,但错误仍然存​​在。 runtime library [someLib.so] in /usr/lib may be hidden by files in: /usr/lib/here
CMakeLists.txt 中导致构建错误的行是:

ADD_EXECUTABLE(test main.cpp)
TARGET_LINK_LIBRARIES(test moreStuff evenMoreStuff)

我在 build.make 中看到了问题文件。这是由 ccmake 生成的。我不知道 ccmake 在哪里得到 someLib.so 的想法在 /usr/lib/ , 而不是 @ /usr/lib/here/ .我想这会是一个 SET()某处声明。我没有找到。

1)配置文件(ccmake 'c' cmd)叫什么?它会在哪里(相同的目录?)?
我想如果我删除它,我将能够再次看到错误。 (更改 CMakeFile.txt 似乎没有这样做。)
2) 如何找到 someLib.so的位置正在设置? (我在找什么?)

我讨厌 CCMAKE。谢谢

最佳答案

我会说这是 find_library 调用之一的问题。如果我没记错的话,这是在您的环境指向两个不同位置时发生的,这两个位置都包含同名的库文件。

您可以通过更改环境使其不指向两个位置或使用 NO_*_PATH 和 find_library 调用之一来防止 cmake 找到两个位置来防止这种情况发生(例如,您可以为此 find_library 定义自己的路径和使用 NO_DEFAULT_PATH 来防止 cmake 使用环境路径 - 请参阅文档:http://www.cmake.org/cmake/help/v2.8.10/cmake.html#command:find_library)

find_library(someLib_location NAMES someLib PATHS/usr/lib/here/NO_DEFAULT_PATH)

关于 1)我认为它们被称为 CMakeCache 文件,但最安全的方法是简单地删除整个构建结构(如果您使用源代码构建则不是问题)

关于 2)我会通过库名称搜索 CMakeList.txt 文件(没有 .so 后缀和 lib 前缀,因为这些可能是由 CMAKE_FIND_LIBRARY_PREFIXES 和 CMAKE_FIND_LIBRARY_SUFFIXES 变量添加的)

关于cmake - 没有规则使目标/usr/lib/someLib.so,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14347334/

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