使用带有 Visual Studio 代码和 Ubuntu 18.04 的 SFML 图形库

Using SFML Graphical Library with Visual Studio Code and Ubuntu 18.04

我已经安装了 SFML,但是 Visual Studio 代码找不到库。我是 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 代码中的用户设置:

{  
    "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 errors detected. Please update your includePath.
IntelliSense features for this translation unit (/home/userName/Desktop/Temp_Towers_Of_Babel/World_Generation/Main.cpp) will be provided by the Tag Parser.
Cannot open source file "libsfml-graphics-d.so"
'libsfml-graphics-d.so' file not found

如果您想包括例如 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 命令可以帮助您找到此行的 <sfml root prefix> 部分 # set(SFML_DIR "<sfml root prefix>/lib/cmake/SFML")

所以我的解决方案一步步提出:

  1. 安装 VS Code c/c++ and CMake Tools 插件
  2. 检查您是否可以使用 here
  3. 中的 g++ 编译示例 main.cpp
  4. 将代码片段添加到项目根文件夹中的 CMakeList.txt 文件中
  5. 使用 apt install cmake 命令安装 cmake
  6. 转到您的项目文件夹并使用 mkdir build
  7. 添加一个构建文件夹
  8. cd build
  9. cmake ..
  10. make 在这一步之后你会得到一个名为 SFMLTest
  11. 的可执行文件
  12. 在 VS Code 中打开项目文件夹。我认为它会自行配置一切
  13. 如果还是不行,你应该检查这个并尝试自己配置包含路径