c - 与我自己的源文件一起编译 SDL 2
问题描述
由于编译错误,我无法正确使用动态链接的 SDL,我不喜欢使用静态链接路线,因为我不确定在我使用的语言中实现的效果如何。
这就是为什么我想手动编译 SDL 2 源文件的原因,我只是使用了官方 repo 中 /include 和 /src 下的文件,但是在编译时我得到了这个错误:
In file included from /Users/adtrevor/CompileSDL/Sources/SDL/src/video/qnx/video.c:23:
/Users/adtrevor/CompileSDL/Sources/SDL/src/video/qnx/sdl_qnx.h:26:10: fatal error: 'screen/screen.h' file not found
#include <screen/screen.h>
^~~~~~~~~~~~~~~~~
1 error generated.
In file included from /Users/adtrevor/CompileSDL/Sources/SDL/src/video/qnx/keyboard.c:26:
/Users/adtrevor/CompileSDL/Sources/SDL/src/video/qnx/sdl_qnx.h:26:10: fatal error: 'screen/screen.h' file not found
#include <screen/screen.h>
^~~~~~~~~~~~~~~~~
1 error generated.
In file included from /Users/adtrevor/CompileSDL/Sources/SDL/src/video/qnx/gl.c:23:
/Users/adtrevor/CompileSDL/Sources/SDL/src/video/qnx/sdl_qnx.h:26:10: fatal error: 'screen/screen.h' file not found
#include <screen/screen.h>
^~~~~~~~~~~~~~~~~
1 error generated.
我知道可以这样做,因为官方网站提到了它,但我完全不知道我应该遵循哪些步骤才能使其正常工作?
编辑: 这是示例回购:https ://github.com/adtrevor/compileSDL
解决方案
SDL 是一个跨平台库,您不太可能希望编译所有源文件以获得所需的功能。通常你运行configure
/ make
,它会决定构建/不构建什么。
您提到您正在自己构建源文件;因此,您可能想要阻止 SDL 构建并尝试捕获相同的文件。关于您的错误,QNX 是黑莓操作系统——因此,根据您的用例,您可以避免在其下构建所有内容,SDL/src/video/qnx/*
因为无论如何您都没有这些操作系统头文件。
无论如何,SDL 应该默认构建静态库。考虑进行常规构建并使用sdl-config --static-libs
以找出应该链接的静态库。
推荐阅读
- javascript - 尝试在浏览器中的 html 文件中加载 functions.js 文件时出现 GET 404 错误(*使用节点 js 作为服务器)
- swift - App中同种语言的冗余外观
- java - 删除每页第一行的 FixedLeading
- javascript - 其他内容 CSS 之上的导航栏
- sql - 如何在 Oracle 11g 监听器中启用 SSL
- php - 如何有效地制作许多(100 多个)具有细微差异的 HTML 页面
- java - 编译失败:-source 7 中不支持 lambda 表达式
- php - 如何在 php 代码库中停止请求具有 504 超时响应的外部 API
- c# - 错误 System.NullReferenceException:“对象引用未设置为对象的实例。” 在集合视图中(再次)
- c# - System.IO.FileLoadException 如果在设置文件中使用俄语字母