cmake遇到的错误及解决方式

该文章已生成可运行项目,

cmake遇到的错误及解决方式

1.编译时遇到 Add the installation prefix of “xxx“ to CMAKE_PREFIX_PATH or set“xxx_DIR“ to a directory

解决方法:

(1)参见链接

https://blog.youkuaiyun.com/weixin_45756703/article/details/130305421

(2)更新cmake版本(最好3.20以上)

更新方法

$ wget https://cmake.org/files/v3.22/cmake-3.22.1.tar.gz
$ tar xzf cmake-3.22.1.tar.gz
$ cd cmake-3.22.1
$ ./configure
$ make
$ sudo make install
$ cmake --version

2.fatal error: Python.h: No such file or directory #include “Python.h“

解决方法:https://blog.youkuaiyun.com/jrrz0828/article/details/141466932
https://blog.youkuaiyun.com/weixin_40511249/article/details/109136597

linux安装了python3但查看只有python2,更改方式如下
确认Python 3是否已正确安装:

python3 --version

为Python 3创建一个符号链接(软链接)到python:

sudo ln -s /usr/bin/python3 /usr/bin/python

如果你想让系统默认使用Python 3,你可以重新安装Python 3,或者更新系统的alternatives系统来指定默认的Python版本:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1
sudo update-alternatives --config python

然后选择Python 3作为默认的Python版本。

3.更新ubuntu18.04的vscode

ubuntu最高只支持vscode1.85
版本过低报错解决方法:https://blog.youkuaiyun.com/ly869915532/article/details/136588163
https://blog.youkuaiyun.com/ClangCya/article/details/136928581

4.Windows下配置vscode中的C++环境踩坑

  • 坑1:命令行构建报错找不到nmake
  • 坑2:提示编译器未定义的错误
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage

解决方法:解决方法
解决方法2:
在这里插入图片描述

5.Vs Code中C/C++配置launch.json和tasks.json文件详细步骤

vscode配置C++环境json文件步骤

6.vscode下c++使用matplotlib-cpp的环境配置教程

vscode下c++使用matplotlib-cpp的环境配置教程
Matplotlib-cpp在linux中安装以及利用C++代码调用

7.在Windows环境下配置Eigen库以及CMake添加头文件的方法

在这里插入图片描述

在Windows环境下配置Eigen库
在执行到第三步后,在CMakeLists.txt中添加命令

include_directories("C:\\include\\eigen-3.4.0")

在头文件中的调用形式为#include <Eigen/Dense>
在 C/C++ 中,使用 #include 指令时,应该避免使用绝对路径。标准的做法是使用相对路径或指定包含目录。写法 #include <C:\include\eigen-3.4.0\Eigen/Dense> 不是正确的做法。

正确的做法

  1. 使用尖括号:尖括号通常用于系统或库的标准路径,而不是绝对路径。你可以将 Eigen 的路径添加到编译器的包含路径中。

  2. 相对路径:如果你需要包含 Eigen 的头文件,可以先在 CMakeLists.txt 中设置好包含目录,然后直接使用:
    首先,在 CMakeLists.txt 中设置好 Eigen 的路径:

cmake_minimum_required(VERSION 3.10)
project(MyProject)

include_directories("C:\\include\\eigen-3.4.0")

add_executable(my_executable main.cpp)

然后在你的源文件中使用:

#include <Eigen/Dense>

在这里插入图片描述

8.pip换源

要修改 pip 的在线下载地址,你可以通过修改 pip 的配置文件或在命令中指定源地址来实现。以下是两种常见的方法:

方法一:使用配置文件

  1. 找到配置文件

    • 在 Windows 系统上,配置文件通常位于 %APPDATA%\pip\pip.ini
    • 在 macOS 和 Linux 系统上,配置文件通常位于 ~/.pip/pip.conf
  2. 编辑配置文件:如果文件不存在,可以新建一个。添加以下内容来设置默认的源地址,例如使用清华大学的镜像:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

方法二:在命令中指定源

pip install 包名 -i https://pypi.tuna.tsinghua.edu.cn/simple
  • 清华大学:https://pypi.tuna.tsinghua.edu.cn/simple
  • 中科大:https://pypi.mirrors.ustc.edu.cn/simple
  • 阿里云:https://mirrors.aliyun.com/pypi/simple/
  • 豆瓣:https://pypi.douban.com/simple

9.如何从指定的文件夹下使用find_package寻找eigen3?

要从指定的文件夹下使用 find_package 来寻找 Eigen3,你可以使用 CMake 的 CMAKE_PREFIX_PATH 或者 CMAKE_MODULE_PATH 变量来告诉 CMake 在特定的目录下查找 Eigen3。

方法一:使用 CMAKE_PREFIX_PATH

你可以在 CMakeLists.txt 中设置 CMAKE_PREFIX_PATH,指向包含 Eigen3 的目录:

cmake_minimum_required(VERSION 3.10)
project(MyProject)

# 设置 Eigen3 的路径
set(CMAKE_PREFIX_PATH "/path/to/eigen3")

# 查找 Eigen3
find_package(Eigen3 REQUIRED)

add_executable(my_executable main.cpp)
target_link_libraries(my_executable Eigen3::Eigen)

方法二:使用 CMAKE_MODULE_PATH

如果 Eigen3 的 CMake 配置文件(例如 Eigen3Config.cmake)不在标准路径下,你可以使用 CMAKE_MODULE_PATH 来指定路径:

cmake_minimum_required(VERSION 3.10)
project(MyProject)

# 设置 CMake 模块路径
set(CMAKE_MODULE_PATH "/path/to/eigen3/cmake")

# 查找 Eigen3
find_package(Eigen3 REQUIRED)

add_executable(my_executable main.cpp)
target_link_libraries(my_executable Eigen3::Eigen)

9.visual studio同时运行两个项目(服务端和客户端)
https://blog.youkuaiyun.com/m0_70788037/article/details/140156196

本文章已经生成可运行项目
CMake 构建过程中出现报错,通常与系统环境配置、依赖库缺失或编译器路径设置不正确有关。以下是一些常见的 CMake 报错及其解决方法: ### 1. 缺少 C/C++ 编译器 如果报错信息显示 `CMAKE_C_COMPILER-NOTFOUND` 或 `CMAKE_CXX_COMPILER-NOTFOUND`,说明系统中未安装 C/C++ 编译器工具链。 ```bash sudo apt update sudo apt install build-essential ``` 这将安装 `gcc` 和 `g++` 等基础开发工具链 [^1]。 ### 2. OpenSSL 依赖问题 若遇到提示找不到 OpenSSL 的错误信息: ```bash CMake Error at Utilities/cmcurl/CMakeLists.txt:772 (message): Could not find OpenSSL. Install an OpenSSL development package or configure CMake with -DCMAKE_USE_OPENSSL=OFF to build without OpenSSL. ``` 可以通过安装 OpenSSL 开发包来修复: ```bash sudo apt install libssl-dev ``` 或者选择禁用 OpenSSL 支持进行构建: ```bash cmake -DCMAKE_USE_OPENSSL=OFF .. ``` [^2]。 ### 3. 缺失 ncurses 库 当 MySQL 编译时提示缺少 ncurses 相关的依赖项: ```bash remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel. ``` 可以运行以下命令安装相关依赖: ```bash sudo apt install libncurses5-dev ``` 如果是基于 Red Hat 的系统,则使用: ```bash sudo yum install ncurses-devel ``` [^3]。 ### 4. 内联函数错误(如 `_mm_popcnt_u32`) 如果报错信息包含类似 `/usr/lib/gcc/x86_64-linux-gnu/7/include/popcntintrin.h:35:1: error: inlining failed in call to always_inline ‘int _mm_popcnt_u32(unsigned int)’: target specific option mismatch`,可能是因为编译器优化标志不兼容。可以在 CMake 配置中尝试调整编译器标志或更新 GCC 版本。 例如,显式指定较低版本的 GCC 进行编译: ```bash CC=gcc-9 CXX=g++-9 cmake .. ``` 确保已安装多个 GCC 版本并切换默认版本以适配项目需求。 ### 总结建议 - 在重新运行 CMake 前,删除之前的缓存文件 `CMakeCache.txt`。 - 使用 `cmake --help` 查看可用的配置选项,根据报错信息灵活调整参数。 - 如果依赖问题复杂,可考虑使用容器化技术(如 Docker)隔离和复现构建环境。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值