cmake遇到的错误及解决方式
- cmake遇到的错误及解决方式
- 1.编译时遇到 Add the installation prefix of “xxx“ to CMAKE_PREFIX_PATH or set“xxx_DIR“ to a directory
- 2.fatal error: Python.h: No such file or directory #include “Python.h“
- 3.更新ubuntu18.04的vscode
- 4.Windows下配置vscode中的C++环境踩坑
- 5.Vs Code中C/C++配置launch.json和tasks.json文件详细步骤
- 6.vscode下c++使用matplotlib-cpp的环境配置教程
- 7.在Windows环境下配置Eigen库以及CMake添加头文件的方法
- 8.pip换源
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:

- 坑3:make指令无法使用
- 解决方法:解决方法
5.Vs Code中C/C++配置launch.json和tasks.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> 不是正确的做法。
正确的做法
-
使用尖括号:尖括号通常用于系统或库的标准路径,而不是绝对路径。你可以将 Eigen 的路径添加到编译器的包含路径中。
-
相对路径:如果你需要包含 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 的配置文件或在命令中指定源地址来实现。以下是两种常见的方法:
方法一:使用配置文件
-
找到配置文件:
- 在 Windows 系统上,配置文件通常位于
%APPDATA%\pip\pip.ini。 - 在 macOS 和 Linux 系统上,配置文件通常位于
~/.pip/pip.conf。
- 在 Windows 系统上,配置文件通常位于
-
编辑配置文件:如果文件不存在,可以新建一个。添加以下内容来设置默认的源地址,例如使用清华大学的镜像:
[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
1122

被折叠的 条评论
为什么被折叠?



