ubuntu - Fedora 找不到 libSDL2main.so(也不需要它):我可以为 Fedora 和 Ubuntu 使用一个 Makefile 吗?
问题描述
在 Fedora 上,我的命令g++ main.cpp
sdl2-config --cflags -lSDL2main -lSDL2
认为该SLD2main
库不可用。没错:其他 SDL2 库在/usr/lib64
; libSDL2main.so
不是。
但我安装了所有明显相关的 SDL2 rpm。以下是我说的系统告诉我的内容yum install SDL2
:
Package SDL2-2.0.12-1.fc32.x86_64 is already installed.
Package SDL2-devel-2.0.12-1.fc32.x86_64 is already installed.
Package SDL2_image-2.0.5-3.fc32.x86_64 is already installed.
Package SDL2_image-devel-2.0.5-3.fc32.x86_64 is already installed.
Package SDL2_mixer-2.0.4-5.fc32.x86_64 is already installed.
Package SDL2_mixer-devel-2.0.4-5.fc32.x86_64 is already installed.
Package SDL2_ttf-2.0.15-4.fc32.x86_64 is already installed.
Package SDL2_ttf-devel-2.0.15-4.fc32.x86_64 is already installed.
如果我去掉 g++ 选项-lSDL2main
,程序会链接并运行。
但这是一个问题。我希望我的 Makefile 通常可以在 Unix 系统上工作。我该怎么做——对 RedHat/Fedora 和 Debian/Ubuntu 使用相同的 Makefile?
解决方案
您应该从sdl2-config --libs
或获取链接器标志pkg-config sdl2 --libs
。
推荐阅读
- javascript - 焦点改变后调用 v-on
- algorithm - 这 3 个嵌套循环的时间复杂度界限
- c# - 如何在不涉及用户身份验证的情况下获取 Azure 访问令牌(针对应用程序,而不是用户)?
- angular - 如何在 HTML 中将 base64 显示为可下载链接?
- concurrency - 双核机器上 2+ youtube 视频的并发上下文切换
- ios - Swift UITableView 分隔符隐藏直到滚动
- c - 我可以使用 C 中的 wait(&status) 和循环清理具有相同父级的多个子进程吗?
- angularjs - Angular 中的 GET 请求
- python - 确保 chromedriver 和 google-chrome 在 ubuntu 中的版本相同
- android - 找不到 FCM 令牌