我正在尝试按照他们的入门指南让柯南在测试项目中工作,以便我可以开始在实际项目中使用它。我试图在 Ubuntu 16.10 x64 上用 g++ 编译的 C++ 项目中使用 SDL2 和 glew。
我的 conanfile.txt 看起来像这样:
[requires]
SDL2/2.0.5@lasote/stable
glew/2.0.0@coding3d/stable
[generators]
cmake
我的 CMakeLists.txt 文件如下所示:
project(conantest)
cmake_minimum_required(VERSION 3.5)
set(CMAKE_CXX_STANDARD 11)
include(conan/conanbuildinfo.cmake)
conan_basic_setup()
set(SRC_FILES main.cpp Display.cpp)
add_executable(conantest ${SRC_FILES})
我的项目由一个包含 CMakeLists.txt、conanfile.txt、我的所有源代码的目录、一个 Cmake 的构建目录、一个柯南的 conan 目录和一个rebuild.sh 组成。每当我对构建环境进行更改时,我都会使用此rebuild.sh 脚本来清理和构建项目(rm -r,尽管它一旦工作就不是最理想的了,以确保在我尝试后删除先前设置中的任何错误修复)。
我的rebuild.sh 看起来像这样:
rm -r ./build/*
rm -r ./conan/*
cd conan
conan install ..
cd ../build
cmake ..
make
当我运行这个脚本时,一切似乎都在工作,直到最终的可执行文件被链接。发生这种情况时,我得到Display.cpp:(.text+0x8a): undefined reference to `SDL_Init'
. 为了解决这个问题,我在这里和这里尝试了解决方案。虽然这些不是 SDL 特有的,但我找不到任何资源。
这是我正在使用的完整环境的 zip 文件,包括 MCVE。