在 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 "&lt;sfml root prefix&gt;/lib/cmake/SFML")这一行的&lt;sfml root prefix&gt; 部分# set(SFML_DIR "&lt;sfml root prefix&gt;/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 图形库的主要内容,如果未能解决你的问题,请参考以下文章