我已经尝试了几个小时而且我似乎无法做到这一点我已经下载了扩展程序并寻求帮助,但此时一切都让我感到困惑。 我想在我的项目中包含SFML库,并且我尝试使用Visual Studio代码编辑器,但由于某种原因它只是不符合。
我昨天也尝试了几个小时,但它只是不想工作。
答案 0 :(得分:1)
我搜索过,我已经找到了。
在 tasks.json 文件中,定义两个任务:
"tasks": [
{
"taskName": "Compilation",
"isBuildCommand": true,
"args": ["-c", "${workspaceRoot}\\main.cpp", "-IC:\\SFML-2.4.0\\include"]
},
{
"taskName": "Liaison du fichier compilé aux bibliothèques SFML",
"args": ["${workspaceRoot}\\main.o", "-o", "sfml-app.exe", "-LC:\\SFML-2.4.0\\lib", "-lsfml-graphics", "-lsfml-window", "-lsfml-system"]
}
],
并添加"suppressTaskName": true,
所以就像在Linux上一样。
使用CTRL + SHIFT + B编译。用于创建.exe文件:CTRL + SHIFT + P - >然后“运行任务”然后点击然后点击“Liaison dufichiercompiléaux bibliothèquesSFML“任务。
整个文件是(对我来说):
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "0.1.0",
"command": "g++",
"isShellCommand": true,
"suppressTaskName": true,
"tasks": [
{
"taskName": "Compilation",
"isBuildCommand": true,
"args": ["-c", "${workspaceRoot}\\main.cpp", "-IC:\\SFML-2.4.0\\include"]
},
{
"taskName": "Liaison du fichier compilé aux bibliothèques SFML",
"args": ["${workspaceRoot}\\main.o", "-o", "sfml-app.exe", "-LC:\\SFML-2.4.0\\lib", "-lsfml-graphics", "-lsfml-window", "-lsfml-system"]
}
],
"showOutput": "always"
}
亲切。
答案 1 :(得分:1)
我知道这个问题大约有两年了,但是在摆弄我自己的任务来解决这个问题之后,提出了一些建议。这不应该是最好的方法,但是对于将来找到此答案的任何人来说都应该是好的。
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "Compile",
"type": "shell",
"group": "build",
"command": "g++",
"args": [
"${file}",
"-o",
"${fileBasenameNoExtension}.exe",
"-IC:\\SFML-2.5.1\\include",
"-LC:\\SFML-2.5.1\\lib",
"-lsfml-graphics",
"-lsfml-window",
"-lsfml-system",
],
"problemMatcher": [
"$gcc"
]
}
],
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared"
//"showReuseMessage": true
}
}
这应该与上述答案相同。按CTRL + SHIFT + B弹出任务提示,或在命令面板(CTRL + SHIFT + P)中查找Run task
。请记住在项目的根目录中使用每个库的.dll。
希望这会有所帮助。
答案 2 :(得分:1)
嗯,没什么好说的,除了官网上写的所有内容: https://code.visualstudio.com/docs/cpp/config-linux
我唯一需要做的就是为编译器添加额外的库链接,这可以在 tasks.json 部分完成:
...
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}",
"-lsfml-graphics",
"-lsfml-system",
"-lsfml-window"
],
...
答案 3 :(得分:0)
我知道这个话题已经有好几年了,但是由于我正在寻找一种在vs代码中链接sfml lib的方法,而我首先在这里结束了,我想我会分享我发现的这个git repo,效果很好到目前为止对我来说很好:
https://github.com/andrew-r-king/sfml-vscode-boilerplate
虽然我没有使用SFML 2.5.1,所以我不得不在c_cpp_properties.json文件中进行一点改动(我在Ubuntu 18.04上,并通过软件包管理器安装了sfml)
这是我的c_cpp_properties.json文件:
{
"configurations": [
{
"name": "Linux",
"intelliSenseMode": "gcc-x64",
"includePath": [
"${workspaceFolder}/src",
"/usr/local/include/**",
"/usr/include/**"
],
"defines": [],
"cStandard": "c11",
"cppStandard": "c++17",
"forcedInclude": [
"${workspaceFolder}/src/PCH.hpp"
]
}
],
"version": 4
}