生成依赖SFGUI的项目文件时,找不到.lib文件

时间:2018-11-12 04:51:57

标签: c++ windows cmake sfml sfgui

尝试使用SFML和SFGUI构建简单的测试程序时,我有些困惑。这是在Windows上,并且我已经使用cmake生成Visual Studio 2017项目。

首先,我从github克隆了SFML和SFGUI并生成了解决方案文件。我在管理员模式下运行Visual Studio,并使用发布和调试目标构建了INSTALL项目,以便分别将它们分别构建在C:\Program Files (x86)\SFML\C:\Program Files (x86)\SFGUI\中。开箱即用,一切构建和安装都很好。我还将这两个目录添加到我的PATH环境变量中。我可以构建和运行解决方案文件中显示的SFGUI附带的示例项目。

所以现在我去创建自己的项目,事情开始崩溃。导入SFML本身效果很好。我有一个简单的程序,它会弹出一个窗口,并且工作正常。当我添加find_package(SFGUI REQUIRED)时,CMake在项目尝试更新时失败。我收到以下错误:

2>CMake Error at C:/Program Files (x86)/SFGUI/cmake/SFGUITargets.cmake:78 (message):
2>  The imported target "SFGUI::SFGUI" references the file
2>
2>     "C:/Program Files (x86)/lib/SFGUI-d.lib"
2>
2>  but this file does not exist.  Possible reasons include:
2>
2>  * The file was deleted, renamed, or moved to another location.
2>
2>  * An install or uninstall procedure did not complete successfully.
2>
2>  * The installation package was faulty and contained
2>
2>     "C:/Program Files (x86)/SFGUI/cmake/SFGUITargets.cmake"
2>
2>  but not all the files it references.

请注意,该错误是"C:/Program Files (x86)/lib/SFGUI-d.lib"而不是"C:/Program Files (x86)/SFGUI/lib/SFGUI-d.lib"。前者是无效目录,后者实际上存在。

在SFGUI cmake文件中,当我认为应将变量_IMPORT_PREFIX设置为C:/Program Files (x86)/时,它似乎被设置为C:/Program Files (x86)/SFGUI。我认为通过set_target_properties中对SFGUITargets[-debug].cmake的调用来设置该变量。我不确定这是否是核心问题,或者是否是错的原因。有任何想法我做错了吗?

这里是我的CMakeLists.txt的全部内容,以防万一:

cmake_minimum_required(VERSION 3.1)

set(PROJECT_NAME TestProj)

project(${PROJECT_NAME})

set(SOURCES src/main.cpp)

find_package(OpenGL REQUIRED)
find_package(SFML 2.5 REQUIRED COMPONENTS graphics window audio network system)
find_package(SFGUI REQUIRED) # Errors here. Without this line it's fine.

add_executable(${PROJECT_NAME} ${SOURCES})
target_link_libraries(${PROJECT_NAME} sfml-graphics sfml-window sfml-audio sfml-network sfml-system)

0 个答案:

没有答案