【问题标题】:Unable to compile SFML C++ code with g++ from Visual Studio Code无法使用 Visual Studio Code 中的 g++ 编译 SFML C++ 代码
【发布时间】:2019-06-28 04:20:10
【问题描述】:

我正在尝试在 Visual Studio Code 中编译一些 C++ 代码,但我想使用 SFML 库,但由于某种原因它找不到我的库。我正在使用这样配置的 c/c++ 扩展

{
"configurations": [
    {
        "name": "Win32",
        "includePath": [
            "${workspaceFolder}/**", "C:\\lib\\SFML\\include\\**"
        ],
        "defines": [
            "_DEBUG",
            "UNICODE",
            "_UNICODE"
        ],
        "compilerPath": "C:\\TDM-GCC-64\\bin\\g++.exe",
        "cStandard": "c11",
        "cppStandard": "c++17",
        "intelliSenseMode": "clang-x64"
    }
],
"version": 4}

我在this other question 之后配置了一个任务,它给了我类似的东西

{
"version": "2.0.0",
"tasks": 
[
    {
        "label": "Compilation",
        "type": "shell",
        "group": "build",
        "command": "g++",
        "args": 
        [
            "main.cpp",
            "-o",
            "GUImeOfLife.exe",
            "-IC:C:\\lib\\SFML\\include\\SFML",
            "-LC:C:\\lib\\SFML\\lib",
            "-lsfml-graphics",
            "-lsfml-window",
            "-lsfml-system"
        ],
        "problemMatcher": "$gcc"
    }
],
"presentation": {
    "echo": true,
    "reveal": "always",
    "focus": false,
    "panel": "shared",
    "showReuseMessage": true,
    "clear": true
}}

但是,当我在我的代码上运行任务时(只是来自 SFML 库网站的示例代码),我从编译器收到以下消息:

执行任务:g++ main.cpp -o GUImeOfLife.exe -IC:C:\lib\SFML\include\SFML -LC:C:\lib\SFML\lib -lsfml-graphics -lsfml-window -lsfml-系统
main.cpp:1:24:致命错误:Graphics.hpp:没有这样的文件或目录 编译终止。
终端进程以退出代码终止:1

(有问题的那一行就是#include <Graphics.hpp>

我必须进行哪些更改才能使其正常工作?

谢谢

【问题讨论】:

  • "-IC:C:\\...?
  • 是的,我实际上不知道它应该做什么以及它是如何工作/搜索文件的,所以我盯着它看,但你有更精确/详细的建议吗?我想它是为了指示我的计算机上安装的库和包含库的位置,但如果你能解释一下我应该放什么,我会很高兴
  • 不是"C:C:\\" 而是"C:\\"?
  • 但是为什么呢?如果您碰巧知道这是如何工作的,请提供更多详细信息
  • 是例如C:C:\\lib\\SFML\\include\\SFML Windows 中的有效路径?还是C:\\lib\\SFML\\include\\SFML?你有 C: doubled (作为C:C:)这使得路径错误。

标签: c++ windows visual-studio-code g++ sfml


【解决方案1】:

来自您的配置文件

"-IC:C:\\lib\\SFML\\include\\SFML",

你呈现的路径前面多了一个错误的C:

路径应该是

"-IC:\\lib\\SFML\\include\\SFML",

这个错字也是-L选项的一部分。

【讨论】:

    猜你喜欢
    • 2016-10-20
    • 1970-01-01
    • 2021-06-11
    • 1970-01-01
    • 2022-01-09
    • 2020-03-07
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    相关资源
    最近更新 更多