【问题标题】:Compiling SFML application with CMake使用 CMake 编译 SFML 应用程序
【发布时间】:2023-04-02 15:05:01
【问题描述】:

我正在尝试使用 CMake 构建应用程序。我正在尝试使用的库是 SFML。 Ubuntu 是我选择的操作系统。

这是我的 CMakeLists.txt(“//”cmets 不是实际文件的一部分):

project(MyApp)          // App name
cmake_minimum_required(VERSION 2.8)      // CMake version
aux_source_directory(. SRC_LIST)         // Source files
add_executable(${PROJECT_NAME} ${SRC_LIST})         // Executable
target_compile_features(${PROJECT_NAME} PRIVATE cxx_range_for)    // C++ version taken care of

set(CMAKE_MODULE_PATH "/usr/local/share/SFML/cmake/Modules" ${CMAKE_MODULE_PATH})          // Path to my "FindSML.cmake" file
find_package(SFML 2 REQUIRED system window graphics network audio)          // Finding SFML 2.X

#LINKING
target_link_libraries(${PROJECT_NAME}        // Linking libraries
${SFML_LIBRARIES} )             // Linking SFML

这些是我得到的错误:

error: SerIDE: hidden symbol `__cpu_model' in /usr/lib/gcc/x86_64-linux-gnu/5/libgcc.a(cpuinfo.o) is referenced by DSO
error: final link failed: Bad value
error: collect2: error: ld returned 1 exit status

【问题讨论】:

  • 看起来像 SFML 库或您的可执行文件尝试使用隐藏在链接中的符号。有关该错误的更多信息,请参阅this question
  • 我可以确认这个错误 - 我用命令行编译我的程序g++ --std=c++11 -Wall main.cpp -lsfml-graphics -lsfml-window -lsfml-system -o a.out

标签: c++ cmake g++ sfml


【解决方案1】:

我刚刚更新了我的 Debian Sid,它引入了 g++ 版本 6.1.1。重新编译 SFML 似乎已经修复了这个错误。

如果这不起作用,似乎还有一个补丁: http://en.sfml-dev.org/forums/index.php?topic=20638.0

【讨论】:

    猜你喜欢
    • 2021-11-14
    • 2014-07-10
    • 2018-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-10
    • 2020-02-01
    • 1970-01-01
    相关资源
    最近更新 更多