gpt4 book ai didi

c++ - 是否可以在 cmake 中更改库链接顺序

转载 作者:搜寻专家 更新时间:2023-10-31 00:31:06 31 4
gpt4 key购买 nike

当我执行 make 时,它会执行类似 gcc blah.o -lXtst -lX11 的操作,这会导致类似 undefined reference to XTestFakeButtonEvent 的错误>。我发现了很多答案,他们都说这是因为错误的链接顺序。使用普通 gcc 时很容易更改顺序,但是 make 呢?

最佳答案

这里有两种答案,一种是懒惰的,一种是正确的。

偷懒的是,你指定target_link_libraries依赖的顺序就是它们在命令行中出现的顺序。

然而,这不是一个非常令人满意的答案,因为以这种方式跟踪依赖关系相当乏味并且很容易出现维护错误。

更好的解决方案是显式地对所有依赖项建模。也就是说,将每个依赖项建模为它自己的目标(如果处理预编译的依赖项,可能使用 imported targets),然后使用 target_link_librariesadd_dependencies 正确地建模目标间依赖项。 .如果您在整个项目中都这样做,您(几乎)永远不必担心顺序,因为 CMake 会为您处理。

关于c++ - 是否可以在 cmake 中更改库链接顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34900283/

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