非标准路径的 CMAKE_ROOT

本文详细介绍了如何解决在非管理员权限下安装cmake2.8.10.2并配置环境变量的问题,包括下载、编译、安装及解决cmake运行时报错的方法。
由于系统本身的 cmake 版本太低,需要更新一个。
没有管理员全限,只能在$HOME下安装软件。

下载 cmake 2.8.10.2 后,希望安装到  $HOME/local 目录下,类似于  /usr/local 的结构。

修改 ~/.bashrc,增加

export  PATH=$HOME/local/bin:$PATH
export LD_LIBRARY_PATH=$HOME/local/lib:$LD_LIBRARY_PATH


然后编译 cmake 2.8.10.2 :


./bootstrap --prefix=$HOME/local
make
make install


安装完成后,cmake 在 $HOME/local/bin 下。


但运行 cmake 后报错


CMake Error: Could not find CMAKE_ROOT !!!
CMake has most likely not been installed correctly.
Modules directory not found in
/home/kelvin/local/bin
段错误 (core dumped)


解决这个问题需要在 ~/.bashrc 中追加
export  CMAKE_ROOT=$HOME/local/share/cmake-2.8


# ======================== 项目配置 ======================== cmake_minimum_required(VERSION 3.10) project(CrossCompileProject) # 定义项目名称 #工具链路径设置 # set(TOOLSCHAIN_PATH /home/aiec/Documents/aarch64--glibc/aarch64-buildroot-linux-gnu) # set(TOOLCHAIN_HOST /home/aiec/Documents/aarch64--glibc/bin/aarch64-buildroot-linux/gnu) set(TOOLSCHAIN_PATH /usr/bin/) set(TOOLCHAIN_HOST /usr/bin/) set(TOOLCHAIN_CC "${TOOLCHAIN_HOST}gcc") set(TOOLCHAIN_CXX "${TOOLCHAIN_HOST}g++") #指定交叉编译 # set(CMAKE_CROSSCOMPILING TRUE) #目标平台信息 set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_SYSTEM_VERSION 1) set(CMAKE_SYSTEM_PROCESSOR aarch64) #指定编译器 set(CMAKE_C_COMPILER ${TOOLCHAIN_CC}) set(CMAKE_CXX_COMPILER ${TOOLCHAIN_CXX}) #根路径设置 set(CMAKE_FIND_ROOT_PATH "${CMAKE_PREFIX_PATH}" "${TOOLSCHAIN_PATH}") #查找策略 set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) # 自动检测当前目录下的所有CPP文件 file(GLOB SOURCES "*.cpp") # 验证文件存在性 if(NOT SOURCES) message(FATAL_ERROR "未找到可编译的CPP文件") endif() # 创建可执行目标 add_executable(${PROJECT_NAME} ${SOURCES}) include_directories(/usr/local/cookoo/inc) # 链接库 # target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS}) target_link_libraries(${PROJECT_NAME} /usr/local/lib/libixwebsocket.a /usr/lib/aarch64-linux-gnu/libopencv_core.a /usr/lib/aarch64-linux-gnu/libopencv_flann.a /usr/lib/aarch64-linux-gnu/libopencv_imgproc.a /usr/lib/aarch64-linux-gnu/libopencv_imgcodecs.a /usr/lib/aarch64-linux-gnu/libopencv_videoio.a /usr/local/cookoo/lib/libcookoosdk.a ) # 设置目标属性 set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD 17 # 指定C++17标准 RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin" # 输出到bin目录 ) # 编译选项优化 if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Release) # 默认Release模式 endif() target_compile_options(${PROJECT_NAME} PRIVATE $<$<CONFIG:Release>:-O3> $<$<CONFIG:Debug>:-g -O0> -Wall -Wextra -pedantic # 启用所有警告 ) # 额外配置:链接器路径(根据引用[4]可能需要) # set(CMAKE_EXE_LINKER_FLAGS "-Wl,-rpath-link,${TOOLSCHAIN_PATH}/lib")以上cmakelists文件的内容,详细接私活
10-31
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值