运行Ubuntu操作系统,最新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>我应该怎么做才能解决这个问题?
发布于 2020-10-16 05:12:26
您的CMakeLists.txt未指示链接任何库。只包含SDL头文件就会告诉编译器您打算使用这些函数;它不会说明在哪里可以找到它们。您需要在CMakeLists.txt中添加TARGET_LINK_LIBRARIES(Epic SDL SDL_tff)语句。
https://stackoverflow.com/questions/64378861
复制相似问题