Home › Forums › GAMES在线课程(现代计算机图形学入门)讨论区 › 分享一个在Windows上用CMake+VSCode做作业的环境
- This topic has 0 replies, 1 voice, and was last updated 4 years, 3 months ago by Misa_XU.
-
AuthorPosts
-
-
0. 在VSCode里安装CMake Tools和C/C++
1. 用CMake-GUI安装OpenCV
安装步骤我参考了这篇文章,它同样适用于对opencv4的安装。另,文章指出,我们需要在path里面添加一个名为 “OPENCV_DIR”的环境变量,它的值是“OpenCVConfig.cmake”所在的文件夹。 这个文件定义了“OpenCV_LIBS”和“OpenCV_INCLUDE_DIRS”两个变量,并告诉我们,当我们需要使用OpenCV时,需要在CMakeLists.txt里加入如下两行:
find_package(OpenCV REQUIRED) target_link_libraries(MY_TARGET_NAME ${OpenCV_LIBS})
2. 创建一个新的文件夹,我把它命名为GAMES101
3. 下载Eigen
这是一个无需安装的header-only库,我把它解压并重命名为’eigen3’,放在了GAME101下面,到目前为止,这个文件夹的结构为GAMES101/
– eigen3/4. 添加并配置CMakeLists.txt
cmake_minimum_required (VERSION 2.8.11) #cmake版本要求 project (GAMES101) #命名这个project include_directories(${PROJECT_SOURCE_DIR}) #引用Eigen,${PROJECT_SOURCE_DIR}即GAMES101/的绝对路径,代码框架里引用Eigen的方式是<eigen3/Eigen/Eigen>
5. 配置作业1的编译环境
这里拿作业1举例,因为它同时用到了OpenCV和Eigen5.1 在GAMES101下创建名为1的文件夹
5.2 在GAMES101下的CMakeLists.txt的末尾加入add_subdirectory(1) # 1为作业1的文件夹的名字,它命令CMAKE执行文件夹1下的CMakeLists.txt
5.2 将作业1的代码框架拷贝到文件夹1下
5.3 在文件夹1下创建并配置CMakeLists.txtaux_source_directory (. DIR) # '.'代表当前文件夹 这个指令将遍历当前文件夹下的所有源代码,将它作为一个 list存入变量‘DIR’中 set(IDX 1) #定义一个变量‘IDX’,它的值为文件夹的名字,1 add_executable (${IDX} ${DIR}) #在整个工程里添加一个名为${IDX}的可执行文件,可执行文件的源代码是${DIR} find_package(OpenCV REQUIRED) target_link_libraries(${IDX} ${OpenCV_LIBS}) #在第二步里提到的配置OPENCV的方法 set(CMAKE_CXX_STANDARD 17) #配置C++ Standard set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin/${IDX}) #配置可执行文件的输出路径
到目前为止,GAMES101的结构为
| CMakeLists.txt
|
+—1
| CMakeLists.txt
| main.cpp
| rasterizer.cpp
| rasterizer.hpp
| Triangle.cpp
| Triangle.hpp
|
\—eigen36. 用VSCODE编辑代码
安装CMake Tools之后,VSCODE会自动读取CMakeLists.txt并进行相应的代码高亮7. 用CMAKE创建VS PROJECT
在Terminal里,进入GAMES101/下输入mkdir build #新建build文件夹
cd build #进入build
cmake .. #用默认的Generator根据build的父文件夹即GAMES101/下的CMakeLists.txt创建VS Project8. 用CMAKE BUILD可执行文件
在Terminal里,进入GAMES101/build/下输入cmake –build . 或者 cmake –build . –config Release
如果沒有error的话,我们将在GAMES101\build\bin\1\Release里找到1.exe
9. 添加更多的作业
9.1 在GAMES101下添加新的文件夹,并在里面按照步骤5配置文件夹下的CMakeLists.txt
9.2 在GAMES101下的CMakeLists.txt里,你可以通过配置一个或多个add_subdirectory(<文件夹>)
去同时build一个或多个exeThis post has received 2 votes up.- This topic was modified 4 years, 3 months ago by Misa_XU.
-
-
AuthorPosts
- You must be logged in to reply to this topic.