我正在尝试使用SDL和smpeg制作准系统媒体播放器。目前,我仅有的代码如下:

// Header file for SDL
#include "SDL.h"

// This is the header file for the library
#include "smpeg.h"

// Link in the needed libraries
#pragma comment( lib, "sdlmain.lib")
#pragma comment( lib, "sdl.lib")
#pragma comment( lib, "smpeg.lib")

#include "SDL_Movie.h"

int main(int argc, char* argv[])
{
    return 0;
}

但是,当我尝试使用以下命令编译此代码时,出现错误:
g++ sdltest.cpp `pkg-config --clflags --libs sdl2` && ./a.out
Error is: fatal error: smpeg.h: No such file or directory

我相信这是smpeg的libs的链接错误,我尝试了以下链接命令:
-lSDL2_smpeg
-lSDL_smpeg
-lsmpeg
-libsmpeg

请注意,我已经使用软件包管理器安装了我认为正确的库:
sudo apt-get install libsmpeg-dev

我应该如何以其他方式链接此链接?

最佳答案

在我的Debian Stretch框上,libsmpeg-devsmpeg.h header 粘贴在/usr/include/smpeg/中,而不是/usr/include/中。

因此,要么将-I/usr/include/smpeg/传递到g++,要么切换到#include <smpeg/smpeg.h>

有关如何搜索头文件的信息,请参见GCC C preprocessor documentation

关于c++ - 链接到smpeg库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43032416/

10-10 21:23