当前目录结构:
先配置 c_cpp_properties.json
${workspaceFolder} 表示,当前vscode所打开的目录的路径
配置这个文件是告诉vscode,应该取哪里搜索头文件,以免在vscode 编辑器中
当 include 的时候,会显示错误
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
"${workspaceFolder}/include",
"D:\\dev\\C++Lib\\OpenCV-MinGW-Build-OpenCV-4.5.2-x64\\include",
"D:\\dev\\C++Lib\\eigen-3.4.0"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"compilerPath": "D:\\BasicSoftware\\mingw64\\bin\\gcc.exe",
"cStandard": "c17",
"cppStandard": "gnu++14",
"intelliSenseMode": "windows-gcc-x64"
}
],
"version": 4
}
然后是 CMakeLists.txt
关键是这两个,配置好头文件的目录和cpp文件的路径
include_directories(include ${OpenCV_INCLUDE_DIRS} ${EIGEN_INCLUDE})
add_executable(rasterizer "src/Triangle.cpp" "src/Rasterizer.cpp" "main.cpp")
CMakeLists.txt 完整代码:
cmake_minimum_required (VERSION 3.1)
project ("rasterizer")
if(CMAKE_COMPILER_IS_GNUCC)
message("COMPILER IS GNUCC")
ADD_DEFINITIONS (-std=c++14)
endif(CMAKE_COMPILER_IS_GNUCC)
# OpenCV_DIR目录下要有OpenCVConfig.cmake,cmake才能找到opencv
set(OpenCV_DIR D:\\dev\\C++Lib\\OpenCV-MinGW-Build-OpenCV-4.5.2-x64\\x64\\mingw\\lib)
set(EIGEN_INCLUDE D:\\dev\\C++Lib\\eigen-3.4.0)
# find_package 会从 (PACKAGENAME)_DIR去找
find_package(OpenCV REQUIRED)
message(STATUS "opencv include path is: " ${OpenCV_INCLUDE_DIRS})
message(STATUS "opencv lib path is: " ${OpenCV_LIBS})
# 头文件目录
include_directories(include ${OpenCV_INCLUDE_DIRS} ${EIGEN_INCLUDE})
add_executable(rasterizer "src/Triangle.cpp" "src/Rasterizer.cpp" "main.cpp")
# 添加opencv库文件目录
target_link_libraries(rasterizer ${OpenCV_LIBS})
这是games101的作业吗
是的,一方面是games101的作业。另一方面是,准备弄一个完整的软光栅。把图形学里的光栅化算法全部实现一遍。
关注你了大佬hh,跟着大佬学图形学