问题描述
正在运行Ubuntu OS,最新的LTS版本。当我运行项目时,它会给我很多“对(SDL库中的函数)的未定义引用”,但是当我在命令行中使用
进行编译时 g++ main.cpp -lSDL -lSDL_ttf
它可以编译成.out文件,并且可以运行。
我在StackOverflow上尝试了许多其他人共享的方法,但没有一个起作用。
这是我的CMakeLists文件:
cmake_minimum_required(VERSION 3.16)
project(Epic)
set(CMAKE_CXX_STANDARD 14)
add_executable(Epic main.cpp)
我的包括:
#include <iostream>
#include <SDL2/SDL.h>
#include <SDL2/SDL_ttf.h>
我该怎么做才能解决此问题?
解决方法
您的CMakeLists.txt不表示链接任何库。仅包含SDL头文件就可以告诉编译器您打算使用这些功能。它没有说在哪里找到他们。您需要在CMakeLists.txt中添加TARGET_LINK_LIBRARIES(Epic SDL SDL_tff)语句。