在 Visual Studio Code 和 Ubuntu 18.04 中使用 SFML 图形库
Posted
技术标签:
【中文标题】在 Visual Studio Code 和 Ubuntu 18.04 中使用 SFML 图形库【英文标题】:Using SFML Graphical Library with Visual Studio Code and Ubuntu 18.04 【发布时间】:2018-06-03 03:46:30 【问题描述】:我已安装 SFML,但 Visual Studio Code 找不到该库。我对 Ubuntu 很陌生,对 C++ 也很陌生。
如何让我的 IDE 识别库?
这是“libsfml-graphics-d.so
”输入终端时显示的内容。
libsfml-window-d.so.2.5 (libc6,x86-64) => /usr/local/lib/libsfml-window-d.so.2.5
libsfml-window-d.so (libc6,x86-64) => /usr/local/lib/libsfml-window-d.so
libsfml-system-d.so.2.5 (libc6,x86-64) => /usr/local/lib/libsfml-system-d.so.2.5
libsfml-system-d.so (libc6,x86-64) => /usr/local/lib/libsfml-system-d.so
libsfml-network-d.so.2.5 (libc6,x86-64) => /usr/local/lib/libsfml-network-d.so.2.5
libsfml-network-d.so (libc6,x86-64) => /usr/local/lib/libsfml-network-d.so
libsfml-graphics-d.so.2.5 (libc6,x86-64) => /usr/local/lib/libsfml-graphics-d.so.2.5
libsfml-graphics-d.so (libc6,x86-64) => /usr/local/lib/libsfml-graphics-d.so
libsfml-audio-d.so.2.5 (libc6,x86-64) => /usr/local/lib/libsfml-audio-d.so.2.5
libsfml-audio-d.so (libc6,x86-64) => /usr/local/lib/libsfml-audio-d.so
这些是我在 Visual Studio Code 中的用户设置:
"editor.detectIndentation": false,
"editor.tabSize": 3,
"editor.insertSpaces": true,
"telemetry.enableTelemetry": false,
"telemetry.enableCrashReporter": false,
"window.zoomLevel": 1,
"editor.rulers": [80,120],
"clang.cxxflags": ["/usr/local/lib/"],
当我的鼠标悬停在我的 C++ 代码上时,会显示“#include <libsfml-graphics-d.so>
”这个文本:
#include 检测到错误。请更新您的 includePath。 此翻译单元 (/home/userName/Desktop/Temp_Towers_Of_Babel/World_Generation/Main.cpp) 的 IntelliSense 功能将由标记解析器提供。 无法打开源文件“libsfml-graphics-d.so” 找不到“libsfml-graphics-d.so”文件
【问题讨论】:
【参考方案1】:如果您想包含例如 SFML 图形,为什么不尝试这种方式?
#include <SFML/Graphics.hpp>
另一方面,如果您想在 VS Code 中使用 C++,我建议您安装“c/c++”插件。您可以使用此搜索词 c/c++
在市场上找到它。
vscode-cpptools
如果您可以使用 g++ 从here 编译示例代码,那就太好了。
我认为 CMake 在正确配置方面也对我有很大帮助。
例如这是一个简单的 CMakeLists.txt 文件。 Here你可以阅读整篇文章。
cmake_minimum_required(VERSION 3.1)
project(SFMLTest)
## If you want to link SFML statically
# set(SFML_STATIC_LIBRARIES TRUE)
## In most cases better set in the CMake cache
# set(SFML_DIR "<sfml root prefix>/lib/cmake/SFML")
find_package(SFML 2.5 COMPONENTS graphics audio REQUIRED)
add_executable(SFMLTest main.cpp)
target_link_libraries(SFMLTest sfml-graphics sfml-audio)
whereis SFML
命令可以帮你找到# set(SFML_DIR "<sfml root prefix>/lib/cmake/SFML")
这一行的<sfml root prefix>
部分# set(SFML_DIR "<sfml root prefix>/lib/cmake/SFML")
所以我的解决方案建议一步一步来:
-
安装 VS Code c/c++ 和 CMake Tools 插件
检查您是否可以使用来自here 的 g++ 编译示例 main.cpp
将代码片段添加到项目根文件夹中的
CMakeList.txt
文件中
使用apt install cmake
命令安装cmake
转到您的项目文件夹并添加带有mkdir build
的构建文件夹
cd build
cmake ..
make
在这一步之后你会得到一个名为SFMLTest
的可执行文件
在 VS Code 中打开项目文件夹。我认为它会自行配置所有内容
如果还是不行,你应该检查这个answer并尝试自己配置包含路径
【讨论】:
以上是关于在 Visual Studio Code 和 Ubuntu 18.04 中使用 SFML 图形库的主要内容,如果未能解决你的问题,请参考以下文章