【问题标题】:CMake won't link when moved to 64-bit system移动到 64 位系统时,CMake 不会链接
【发布时间】:2014-03-17 15:41:37
【问题描述】:

当我发现我的 Ubuntu 安装为 32 位时,我一直在毫无问题地使用 CMake,尽管我的处理器实际上是 64 位的。哎呀。

我重新安装了 Ubuntu 和我正在使用的各种开发包。现在,当我运行 make 时,会出现如下错误:

[  1%] make[2]: *** No rule to make target `/usr/lib/i386-linux-gnu/libQtGui.so', needed by `/home...

/usr/lib/i386-linux-gnu/libQtGui.so` 不存在,但 /usr/lib/x86_64-linux-gnu/libQtGui。也一样。

我已经运行 ccmake 来重新配置和重新生成 makefile 并运行 make clean 但它仍在寻找 64 位库。如果我展开 ccmake 选项,我可以在各种变量中看到 32 位库路径。

我创建了一个新的构建目录并从头开始运行 ccmake,但现在我必须记住我输入的所有非默认设置并在新的构建环境中重现它们。

我宁愿将 CMake 设置“升级”到 64 位,保留我自己的标志。这可能吗?

【问题讨论】:

  • 有时只需要删除 CMakeCache.txt 文件。我认为无论出于何种原因,clean 都不会发生这种情况。
  • 删除 CMakeCache.txt 会修复库,但也会删除我的标志和其他设置更改。
  • 从您的 CMakeCache.txt 中提取您的自定义设置(它只是文本)并重新开始。如果它是您的来源,请将所有这些内容放在 CMakeLists.txt 中,而不是手动调整缓存文件。

标签: cmake


【解决方案1】:

从一个新的 CMake 缓存开始:

rm CMakeCache.txt

【讨论】:

  • 这会破坏我的其他设置
  • 确实如此,但是当您更改架构时,您别无选择。
【解决方案2】:

如果你不喜欢删除你的 Cmake 缓存,你可以编辑它并搜索和替换来修改库的路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-06
    • 1970-01-01
    • 2019-07-06
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    • 1970-01-01
    • 2012-11-28
    相关资源
    最近更新 更多