将 sfml 与 cmake 链接 (Windows MinGW)

2024-03-25

我好像无法链接SFML到我的可执行文件使用cmake.

CMakeLists.txt:

cmake_minimum_required(VERSION 3.0.0)
project(Tut3)

set(LIBS_DIR ~/../../Libraries)

add_executable(Tut3 main.cpp)

set(CMAKE_MODULE_PATH ${LIBS_DIR}/sfml/cmake/Modules)
find_package(SFML REQUIRED system window graphics)
target_link_libraries(Tut3 ${SFML_LIBRARIES})

运行 cmake 时出现错误:

CMake 错误位于 C:/Libraries/sfml/cmake/Modules/FindSFML.cmake:355 (消息):找不到 SFML(缺少:SFML_SYSTEM_LIBRARY SFML_WINDOW_LIBRARY SFML_GRAPHICS_LIBRARY)

调用堆栈(首先是最近的调用):CMakeLists.txt:9 (find_package)

sfml目录包含32位MinGW编译的sfml存储库。我正在使用Windows。我使用的cmake命令是:

cmake -G "MinGW Makefiles" ..dir..

查找 SFML 的模块不会相对于其自身位置进行查找。相反,除了一些特定变量之外,它还会尝试一些常见路径(非 Windows 系统)来尝试查找实际的库。

为了解决这个问题,你应该做两件事:

  • 移动FindSFML.cmake将脚本复制到您自己项目的子目录中,例如cmake/FindSFML.cmake并调整CMAKE_MODULE_PATH相应的值。
  • 添加新的 CMake 变量SFML_ROOT指向您安装 SFML 的目录(在您的情况下C:/Libraries/sfml)。这不应该被硬编码在CMakeLists.txt文件,而是在调用 CMake 时传递一次(即cmake -DSFML_ROOT=C:/...;这保存在缓存中)。

您的结构也存在一些问题CMakeLists.txt。你应该使用这个:

cmake_minimum_required(VERSION 3.0.0)
project(Tut3)

set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) # Tell CMake where to find the module
find_package(SFML REQUIRED COMPONENTS graphics window system) # Look for SFML

include_directories(${SFML_INCLUDE_DIR}) # You forgot this line above; add SFML's include dir
add_executable(Tut3 main.cpp) # Define the target

target_link_libraries(Tut3 ${SFML_LIBRARIES} ${SFML_DEPENDENCIES}) # Link SFML and dependencies
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 sfml 与 cmake 链接 (Windows MinGW) 的相关文章

随机推荐

  • 根据查找 NP 头的规则在 NLTK 和 stanford 解析中查找名词短语的头

    一般来说 名词短语的中心词是位于 NP 最右边的名词 如下所示 树是父 NP 的中心词 所以 ROOT S NP PP
  • 如何在Python中将多行输入读取到二维数组中

    我在 python 中遇到了一个问题 要读取的二维数组的输入格式是 3 number of rows and columns of a square matrix 1 2 3 first row 3 4 6 second row 4 6 3
  • 从另一个 ViewController 调用方法

    我有一个 ViewControllerA 和一个 ViewControllerB 我想从 ViewControllerB 调用 ViewControllerA 的方法 在 ViewControllerA 中存在一个方法 NSMutableA
  • 使用 matplotlib plt.show() 绘图不可见

    我对 Python 和 Linux 非常陌生 我需要帮助 我尝试使用 matplotlib 按以下方式显示简单的绘图 from matplotlib import pyplot as plt plt plot 5 6 7 8 7 3 8 3
  • 我如何使用纯javascript解析远程html页面

    我需要解析远程 html 页面 例如 www mywesite com home 我如何获取此网站 html 页面源以及如何解析此页面 html是这样的 div class my class1 a href home link id 1 h
  • iOS 7.1 中的 safari 全屏,带有最小的 ui 元标记

    我在多个网站 包括一些 stackoverflow 问题 上读到 iOS 7 1 Safari 将会有一个 minim ui 元标记 所以今天我更新了我的iPad 但似乎没有效果 任何人都可以确认这应该有效吗 这是我的元标记 此选项仅适用于
  • celery-django 找不到设置

    我有一个 Django 项目 使用Celery http pypi python org pypi django celery用于运行异步任务 我正在 Windows XP 计算机上进行开发 启动我的 Django 服务器 python m
  • android ListView不会突出显示所选行

    在我的应用程序中 我从服务器检索用户的播放列表 并感受到ListView与数据 问题是 ListView不突出显示单击的行 为了防止愤怒的评论告诉我我不使用搜索 我尝试过以下方法 将我行中的按钮设置为不可聚焦 通过代码和 XML 设置 li
  • Java 本机接口 (JNI) 是否受 C++ ABI 兼容性问题影响?

    Java 本机接口 JNI 是否受 C ABI 兼容性问题影响 我正在开发一个 Java 应用程序 我想使用 Java 本机接口 JNI 来调用 C 库中的函数 我可以访问 C 库的代码 并且可以根据需要重建它 例如 我可以静态链接 C 运
  • 如何使用现有的 solr 核心数据创建 solr 核心?

    Solr 1 4 企业搜索服务器建议对核心副本进行大量更新 然后将其交换为主核心 我正在执行以下步骤 创建准备核心 执行索引更新 然后在准备核心上提交 优化 交换主核心和预备核心 卸载准备核心 我遇到的问题是 步骤 1 中创建的核心中没有任
  • Enlive 模板 – 添加到头部

    我的应用程序的某些页面将有自己的 js css 包含 所以我想知道如何使用 Enlive 将这些资源添加到 html 文档的头部部分 我发现 append 变压器 但没有不自动转义的 html append 或者什么是正确的方法来做到这一点
  • 污染全局命名空间

    我想这里的大多数 C 程序员都会同意污染全局命名空间是一个坏主意 但是有时这条规则可以被忽略吗 例如 我有一个需要在特定应用程序中使用的类型 我应该这样定义它 mytypes h typedef int MY TYPE foo cpp MY
  • 如何获取表示 Java 对象的序列化字节数?

    我将使用什么语法来获取表示字符串的字节数并将它们与表示字符串的字节数进行比较ArrayList例如 拿着那根绳子 我正在使用多代理代理系统通过消息发送对象 并且我想跟踪每条消息占用的空间 该方法不必非常准确 只要它与对象的实际大小成比例即可
  • 当jasper中未显示上述组件时,如何使用positionType将组件上拉?

    positionType Float 如果上面的组件拉伸 则组件上的组件会自行下拉 但如果上述组件缩小 不显示 则不会向上移动 以下是使用的版本
  • 如何在websphere中配置和使用jstl

    有谁知道如何在 websphere 中配置 jstl 我知道我们在 web xml 中使用了 taglib 指令 我在 websphere 5 1 2 中哪里可以找到 web xml 以及如何添加配置 你不需要修改web xml根本不 一些
  • jQuery 组合框/选择自动完成? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否存在用于替换选择 组合框的 jQuery 插件 我尝试了SexyCombo 它与我想要的非常接近 但
  • 2 个数组值之一颜色之一使 D3 条形图在值的相同索引处具有颜色

    我有 2 个数组 values 1 2 3 4 5 4 7 2 9 10 colors red red blue blue green green orange orange pink pink 我正在尝试构建一个 D3 条形图 其中每个条
  • .NET Windows 窗体应用程序自我更新的最佳方式是什么?

    我使用自行开发的系统 其中应用程序通过 Web 服务自行更新 然而 我似乎记得最初的 NET 销售宣传中有关组件自动更新是 NET 的内置功能的内容 让应用程序更新自身和 或其使用的程序集的最佳实践是什么 您可能想了解一下 Click On
  • 在 Cypress 中多次拦截相同的 API 调用

    是否可以使用cy intercept在同一个测试中多次拦截相同的 API 调用 我尝试了以下方法 cy intercept pathname url method POST as call1 some logic cy wait call1
  • 将 sfml 与 cmake 链接 (Windows MinGW)

    我好像无法链接SFML到我的可执行文件使用cmake CMakeLists txt cmake minimum required VERSION 3 0 0 project Tut3 set LIBS DIR Libraries add e