gpt4 book ai didi

ubuntu - 更改默认 CMake 版本,Ubuntu 14.04

转载 作者:行者123 更新时间:2023-12-04 18:30:28 25 4
gpt4 key购买 nike

据我了解,我至少需要使用 CMake 3.1 才能使用 C++11。 Ubuntu 14.04 附带 2.8.x。

我按照指南建议将 CMake 安装到 /opt。 ,所以我将 CMake 安装到 /opt/cmake-3.2.1-Linux-x86_64并添加了 /opt/cmake-3.2.1-Linux-x86_64/bin到.bashrc 中的路径(作为第一个元素)。

如果我尝试 apt-get remove cmake该过程不仅要删除 CMake,还要删除 ROS(所以是的,我已经停止了 ubuntu: upgrading software (cmake) - version disambiguation (local compile) ,只是得出结论我无法使用答案)
cmake --version 的结果:

cmake version 3.2.1

将所需的最低版本设置为 3.1 并运行 catkin_make在同一终端产生:
CMake 3.1 or higher is required.  You are running version 2.8.12.2

如何制作 catkin使用 CMake 的新(/正确)版本?

最佳答案

这里发生了两件事:

  • 根据 catkin_make 文件,它不会将 shell 环境复制到 python 子进程“cmake”调用。

  • catkin_make:
    ...
    if args.no_color:
    run_command(cmd, build_path)
    else:
    run_command_colorized(cmd, build_path)

    生成器.py:
    def run_command(cmd, cwd, quiet=False, colorize=False, add_env=None):
    ...
    env = None
    if add_env:
    env = copy.copy(os.environ)
    env.update(add_env)
    try:
    proc = subprocess.Popen(
    cmd, cwd=cwd, shell=False,
    stdout=stdout_pipe, stderr=stderr_pipe,
    env=env
    )

    您可以修改 catkin_make 脚本中的相应行,以便为 add_env 正确传递一个空字典,并且它应该尝试将环境复制到生成的子进程:
    if args.no_color:
    run_command(cmd, build_path, add_env={})
    else:
    run_command_colorized(cmd, build_path, add_env={})

    这应该修改路径并让它找到合适的 cmake 版本,但我不确定仅此一项就可以解决您最初的问题,导致我们......
  • 如果您只是在构建 catkin 时尝试使用 C++11,您也可以添加 -std=c++11编译器标志为 CMAKE_CXX_FLAGS :
  • catkin_make --cmake-flags "-DCMAKE_CXX_FLAGS=\${CMAKE_CXX_FLAGS};-std=c++11"
    或修改 CMakeLists.txt: set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

    关于ubuntu - 更改默认 CMake 版本,Ubuntu 14.04,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29636728/

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