c++ - 如何在 Raspbian C++ 项目上修复 "include"libvlc 和 sdl1.2?

标签 c++ linux raspbian libvlc sdl-1.2

我已经在我的 Raspberry Pi 上的 Raspbian 中安装了“libsdl1.2-dev”和“libvlc”(使用 sudo apt-get install blah),我正在使用 gcc 从 https://wiki.videolan.org/LibVLC_SampleCode_SDL/ 编译示例项目

这是我的编译命令:

gcc -fpermissive test.cpp -lvlc -lsdl1.2-dev -o test

似乎可以编译(在我添加 -fpermissive 并手动将 vlc header 放入 usr/include/vlc 后),错误似乎发生在链接阶段,我收到这 2 个错误;

/usr/bin/ld: cannot find -lvlc
/usr/bin/ld: cannot find -lsdl1.2-dev

我对 Linux 有点陌生,我不明白为什么它找不到它们。我也不确定它默认将它们安装在哪里,它们似乎有几个不同的地方。

最佳答案

使用 pkg-config 获取所需的编译和链接标志。 pkg-config --cflags sdl libvlc 将打印所需的编译标志,pkg-config --libs sdl libvlc 将打印所需的链接标志。您可以使用 shell 的 $() 功能将 pkg-config 的输出直接嵌入到编译命令中。另外,使用 g++ 编译和链接 C++ 代码。 gcc 用于 C 代码。

g++ $(pkg-config --cflags sdl libvlc) -fpermissive test.cpp -o test $(pkg-config --libs sdl libvlc)

软件包名称 sdllibvlc 对应于安装在 /usr/lib/pkgconfig< 中的 *.pc 文件。如果不存在此类文件,则意味着您忘记安装 sdl 和 vlc 库的 -dev 版本。因此,请检查是否有需要安装的 libvlc-dev 软件包。使用这个:

apt-cache search vlc | grep dev

查看是否有您需要的 libvlc 开发包。

关于c++ - 如何在 Raspbian C++ 项目上修复 "include"libvlc 和 sdl1.2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55467032/

相关文章:

c++ - 通过 Qt 中的 QDataWidgetMapper 将单选按钮连接到 QSqlTableModel

sql - 是否有适用于 Linux 的报告解决方案?

linux - 使用 GNU objcopy 从 Elf 生成可执行二进制文件

linux - yocto 图像版本控制的最佳方法

python - Raspberry Pi 上的声音激活录音和高级过滤

.net-core - 如何在 dotnet 核心的树莓派中部署示例 GRPC [客户端-服务器] 解决方案

c++ - 编译时未定义对 `__sync_val_compare_and_swap_4' 错误的引用,使用 gcc 4.1.1 和 4.2.0 作为 Sparc v8 目标

c++ - 我怎样才能 "override"[] 在 C++ 中接受两个参数?

dart - Dart32在Raspbian Stretch上的最新最佳实践

c++ - 在检查无效输入时,有没有办法让程序员知道在主程序中哪里出现了无效输入?