如何让 OpenGL 在 Windows 上与 Visual Studio Code 一起工作?
Posted
技术标签:
【中文标题】如何让 OpenGL 在 Windows 上与 Visual Studio Code 一起工作?【英文标题】:How do I get OpenGL to work with Visual Studio Code on Windows? 【发布时间】:2021-02-11 22:32:47 【问题描述】:我想转移到 VS Code,所以我首先将所有必要的文件和目录转移到我在 VS Code 中打开的文件夹中。然后我继续创建一个“include”文件夹和一个“lib”文件夹:
然后,我利用我以前在设置 VS Code 方面的一些知识来尝试创建“tasks.json”、“launch.json”和 cpp_properties 文件。这就是我卡住的地方。据我所知;
cpp_properties 文件配置智能感知..? launch.json 包含调试配置..? tasks.json 用于将所有文件一起压缩成一个 .exe..?奇怪的是我试过这个命令
g++ -I./include -L./lib F:\opengl\src\stb_image.cpp F:\opengl\src\main.cpp F:\opengl\src\glad.c F:\opengl\glfw3.dll -o openGL.exe
然后它弹出了一个运行程序正常的 .exe。我尝试将其中一些参数放入 tasks.json、launch.json(几乎无处不在),但我不断收到错误消息。
c_cpp_properties:
"configurations": [
"name": "Win32",
"includePath": [
"$workspaceFolder/**",
"$workspaceFolder/include"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "10.0.18362.0",
"compilerPath": "C:/MinGW/bin/g++.exe",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "windows-gcc-x64"
],
"version": 4
tasks.json
"version": "2.0.0",
"tasks": [
"type": "cppbuild",
"label": "C/C++: g++.exe build active file",
"command": "C:\\MinGW\\bin\\g++.exe",
"args": [
"-g",
"$file",
"$workspaceFolder/src/glad.c",
"-lglfw3.dll",
"-o",
"$fileDirname\\$fileBasenameNoExtension.exe"
],
"options":
"cwd": "C:\\MinGW\\bin"
,
"problemMatcher": [
"$gcc"
],
"group":
"kind": "build",
"isDefault": true
,
"detail": "compiler: C:\\MinGW\\bin\\g++.exe"
]
launch.json
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "enter program name, for example $workspaceFolder/a.exe",
"args": [],
"stopAtEntry": false,
"cwd": "$workspaceFolder",
"environment": [],
"console": "externalTerminal",
"MIMode": "gdb",
"miDebuggerPath": "/path/to/gdb",
"setupCommands": [
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
]
]
我想知道这些文件实际上是如何工作的,因为我一无所知。我还想知道我应该如何在 VS Code 窗口上从头开始设置 OpenGL 项目。
【问题讨论】:
????????????请在所有大写字母上放轻松。它被认为是大喊大叫。 “Windows”不是首字母缩写词,您无需大喊大叫。 不确定这里有问题。 Visual Studio Code 可能没有“教程”,但有示例和文档可供参考。 另一件事:如果你想学习图形编程,学习 Vulcan 可能比 OpenGL 更好,因为 Vulcan 很可能是未来的主导力量。 OpenGL 仍然有用,但更多的是它的 OpenGL ES 形式,如 WebGL 之类的东西使用。 避免使用与问题无关的文字。第二和第三段与问题完全无关。 我在***.com/a/66113162/6815381 有这个问题的答案。您设置要包含的头文件并链接库文件,然后将 dll 文件与可执行文件放在同一目录中。 【参考方案1】:我以前也遇到过同样的问题,而且这种编程不像实际编程那样有趣,所以我将只给你我所做的对我有用的东西:
这是makefile,包含INCLUDES = -Iinclude
的用法,库-Llib -lglfw3...
,剩下的就是源代码
CXX = g++
CXXFLAGSSHORT = -std=c++17 -O3 -g
CXXFLAGS = -Wall -Werror -Wextra -pedantic -Wno-unused-parameter -Wno-deprecated-copy $(CXXFLAGSSHORT)
LDFLAGS = -Llib -lglfw3 -lgdi32 -lglew32s -lglu32 -lopengl32 -lfreetype -lpsapi -lstdc++fs -lOpenAL32
INCLUDES = -Iinclude
SRC = $(wildcard src/core/private/*.cpp) $(wildcard src/*.cpp) $(wildcard src/blocks/private/*.cpp) $(wildcard src/models/*.cpp)
LIBSRC = $(wildcard src/profiler/*.cpp)
OBJ = $(SRC:.cpp=.o)
LIBOBJ = $(LIBSRC:.cpp=.o)
EXEC = World_of_Engineering.exe
UTIL_EXEC = projectUtils.exe
all: $(EXEC)
include/noise/FastNoise.o: include/noise/FastNoise.cpp
$(CXX) $(CXXFLAGSSHORT) $(INCLUDES) -c $^ -o $@
$(LIBOBJ): $(LIBSRC)
$(CXX) $(CXXFLAGSSHORT) $(INCLUDES) -c $^
%.o: %.cpp
$(CXX) $(INCLUDES) $(CXXFLAGS) -c $^ -o $@
$(EXEC): $(OBJ) $(LIBOBJ) include/noise/FastNoise.o
$(CXX) -o $@ $^ $(LBLIBS) $(LDFLAGS)
clean:
rm -rf $(OBJ) $(EXEC) build
.PHONY: all clean
如您所见,我没有费心将 .o 文件移动到构建文件夹,但它是可用的
就所有 .vscode 文件而言,我不需要触摸它们中的任何一个,因为它们是自动生成的,除了添加配置和更改可执行路径:
"configurations": [
...
"program": "$workspaceFolder/program.exe",
...
但这只是如果你想调试,你可以在编译链接后按原样运行exe。
【讨论】:
以上是关于如何让 OpenGL 在 Windows 上与 Visual Studio Code 一起工作?的主要内容,如果未能解决你的问题,请参考以下文章
如何 Vue 让输入值 v-model 与 v-bind:value 操作
如何让 Firefox 在 Mac OSX 上与 Selenium WebDriver 一起工作