【问题标题】:Using SFML Graphical Library with Visual Studio Code and Ubuntu 18.04在 Visual Studio Code 和 Ubuntu 18.04 中使用 SFML 图形库
【发布时间】: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”文件

【问题讨论】:

    标签: c++ ubuntu visual-studio-code sfml


    【解决方案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")

    所以我的解决方案建议一步一步来:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-23
      • 2021-03-05
      • 1970-01-01
      相关资源
      最近更新 更多