【发布时间】:2015-10-19 15:18:19
【问题描述】:
我基本上是在尝试在使用 CMake 的 CLion 中创建一个 SFML 项目。
我首先下载了 SFML 2.2,它已经构建了 .dylib 文件。上面说要安装在usr/local/lib和usr/local/include,但是它们不存在,所以我创建了它们,然后把文件放在那里。
然后我打开 CLion,创建了一个子目录 cmake_modules,将 FindSFML.cmake 文件放在里面,并在根项目目录中放置了这些文件:
main.cpp
#include <SFML/Graphics.hpp>
int main()
{
sf::err() << "Hello, World!" << std::endl;
return 0;
}
CMakeLists.txt:
cmake_minimum_required(VERSION 3.2)
project(HelloWorld)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp)
add_executable(HelloWorld ${SOURCE_FILES})
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH})
find_package(SFML COMPONENTS graphics window system REQUIRED)
include_directories(${SFML_INCLUDE_DIR})
target_link_libraries(HelloWorld ${SFML_Libraries})
问题是当我尝试构建项目时,出现以下错误:
Undefined symbols for architecture x86_64:
"sf::err()", referenced from:
_main in main.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我已尝试寻找解决方案,但它们似乎都不起作用。我是不是把文件放错了地方,还是忘记了一些导入 CMake 设置?我知道使用 Xcode 设置 SFML 会更容易,但如果可能的话,我更喜欢使用 CLion。
【问题讨论】:
-
@Tsyvarev 该链接并没有真正帮助,我在这里找到了另一个:goobbe.com/questions/4676434/… 并准确复制了底部的 makefile 配置,但现在它显示为
fatal error: 'SFML/Graphics.hpp' file not found -
哦,上面还写着
make[3]: *** No rule to make target /Users/Rutvik/Downloads/SFML-2.3/lib/libsfml-system.dylib