【问题标题】:Error with linking flag when using the cmake build for cppyy使用 cmake 构建 cppyy 时链接标志出错
【发布时间】:2021-10-06 15:17:48
【问题描述】:

我正在尝试为 cppyy-knearestneighbors 示例 (https://github.com/jclay/cppyy-knearestneighbors-example) 中的 cppyy 构建示例。据我了解,它使用了更现代的 cppyy cmake。

但是,当涉及到链接时,我发现此错误,

ld: unknown option: --no-as-needed
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [knn_example/libknn_exampleCppyy.dylib] Error 1
make[1]: *** [CMakeFiles/knn_exampleCppyy.dir/all] Error 2
make: *** [all] Error 2

我找不到删除这个标志,因为它似乎是 cppyy cmake 内部的东西。有什么办法可以修复编译吗?

【问题讨论】:

  • 你用的是ninja还是make?
  • 我都试过了,同样的错误

标签: c++ cmake cppyy


【解决方案1】:

我无法谈论cppyy,因为我从未使用过它,但由于它在内部使用 CMake,因此您可以通过 LINK_WHAT_YOU_USE 属性的值来控制问题。

我会首先尝试禁用 LINK_WHAT_YOU_USE 的默认值:

# When running cmake configure:
cmake -GNinja -DCMAKE_LINK_WHAT_YOU_USE=OFF

如果它不起作用,一种更进化的方法,这意味着迭代所有目标并取消设置它们的 LINK_WHAT_YOU_USE 属性。如果您需要帮助,请告诉我

https://cmake.org/cmake/help/latest/variable/CMAKE_LINK_WHAT_YOU_USE.html#variable:CMAKE_LINK_WHAT_YOU_USE

【讨论】:

    猜你喜欢
    • 2015-12-07
    • 2019-09-04
    • 2011-04-02
    • 2014-04-22
    • 2015-11-18
    • 1970-01-01
    • 1970-01-01
    • 2019-01-01
    • 2019-10-30
    相关资源
    最近更新 更多