微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何编译Ubuntu的厄运?

我试图编译原始厄运的源代码作为学习C的一种方法。我从github下载了它,并在i_video.c第49行(errnos.h – > errno.h)中修复了一个明显的错误

我现在得到这个:

m_misc.c:257:5: warning: initialization from incompatible pointer type [enabled by default] m_misc.c:257:5: warning: (near initialization for 'defaults[14].location') [enabled by default] m_misc.c:257:5: error: initializer element is not computable at load time m_misc.c:257:5: error: (near initialization for 'defaults[14].defaultvalue') m_misc.c:264:35: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] m_misc.c:264:5: error: initializer element is not constant m_misc.c:264:5: error: (near initialization for 'defaults[16].defaultvalue') m_misc.c:265:37: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] m_misc.c:265:5: error: initializer element is not constant m_misc.c:265:5: error: (near initialization for 'defaults[17].defaultvalue') m_misc.c:288:45: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] m_misc.c:288:5: error: initializer element is not constant m_misc.c:288:5: error: (near initialization for 'defaults[31].defaultvalue') m_misc.c:289:45: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] m_misc.c:289:5: error: initializer element is not constant m_misc.c:289:5: error: (near initialization for 'defaults[32].defaultvalue') m_misc.c:290:45: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] m_misc.c:290:5: error: initializer element is not constant m_misc.c:290:5: error: (near initialization for 'defaults[33].defaultvalue') m_misc.c:291:45: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] m_misc.c:291:5: error: initializer element is not constant m_misc.c:291:5: error: (near initialization for 'defaults[34].defaultvalue') m_misc.c:292:45: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] m_misc.c:292:5: error: initializer element is not constant m_misc.c:292:5: error: (near initialization for 'defaults[35].defaultvalue') m_misc.c:293:45: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] m_misc.c:293:5: error: initializer element is not constant m_misc.c:293:5: error: (near initialization for 'defaults[36].defaultvalue') m_misc.c:294:45: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] m_misc.c:294:5: error: initializer element is not constant m_misc.c:294:5: error: (near initialization for 'defaults[37].defaultvalue') m_misc.c:295:45: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] m_misc.c:295:5: error: initializer element is not constant m_misc.c:295:5: error: (near initialization for 'defaults[38].defaultvalue') m_misc.c:296:45: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] m_misc.c:296:5: error: initializer element is not constant m_misc.c:296:5: error: (near initialization for 'defaults[39].defaultvalue') m_misc.c:297:45: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] m_misc.c:297:5: error: initializer element is not constant m_misc.c:297:5: error: (near initialization for 'defaults[40].defaultvalue') m_misc.c: In function 'M_LoadDefaults': m_misc.c:395:5: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] make: *** [linux/m_misc.o] Error 1

在包含types转换的行的声明中,在m_misc.c文件中:

default_t defaults[] = { {"mouse_sensitivity",&mouseSensitivity,5},{"sfx_volume",&snd_SfxVolume,8},{"music_volume",&snd_MusicVolume,{"show_messages",&showMessages,1},#ifdef norMALUNIX {"key_right",&key_right,KEY_RIGHTARROW},{"key_left",&key_left,KEY_LEFTARROW},{"key_up",&key_up,KEY_UPARROW},{"key_down",&key_down,KEY_DOWNARROW},{"key_strafeleft",&key_strafeleft,','},{"key_straferight",&key_straferight,'.'},{"key_fire",&key_fire,KEY_RCTRL},{"key_use",&key_use,' '},{"key_strafe",&key_strafe,KEY_RALT},{"key_speed",&key_speed,KEY_RSHIFT},// UNIX hack,to be removed. #ifdef SNDSERV {"sndserver",(int *) &sndserver_filename,(int) "sndserver"},{"mb_used",&mb_used,2},#endif #endif #ifdef LINUX {"mousedev",(int*)&mousedev,(int)"/dev/ttyS0"},{"mousetype",(int*)&mousetype,(int)"microsoft"},#endif {"use_mouse",&usemouse,{"mouseb_fire",&mousebfire,0},{"mouseb_strafe",&mousebstrafe,{"mouseb_forward",&mousebforward,{"use_joystick",&usejoystick,{"joyb_fire",&joybfire,{"joyb_strafe",&joybstrafe,{"joyb_use",&joybuse,3},{"joyb_speed",&joybspeed,{"screenblocks",&screenblocks,9},{"detaillevel",&detailLevel,{"snd_channels",&numChannels,{"usegamma",&usegamma,{"chatmacro0",(int *) &chat_macros[0],(int) HUSTR_CHATMACRO0 },{"chatmacro1",(int *) &chat_macros[1],(int) HUSTR_CHATMACRO1 },{"chatmacro2",(int *) &chat_macros[2],(int) HUSTR_CHATMACRO2 },{"chatmacro3",(int *) &chat_macros[3],(int) HUSTR_CHATMACRO3 },{"chatmacro4",(int *) &chat_macros[4],(int) HUSTR_CHATMACRO4 },{"chatmacro5",(int *) &chat_macros[5],(int) HUSTR_CHATMACRO5 },{"chatmacro6",(int *) &chat_macros[6],(int) HUSTR_CHATMACRO6 },{"chatmacro7",(int *) &chat_macros[7],(int) HUSTR_CHATMACRO7 },{"chatmacro8",(int *) &chat_macros[8],(int) HUSTR_CHATMACRO8 },{"chatmacro9",(int *) &chat_macros[9],(int) HUSTR_CHATMACRO9 } };

这是否与现代编译器不兼容? 有没有人设法通过它?

在Linux内核编译中将.o文件放在单独的文件夹中

用特定的OpenSSL版本构buildOpenVPN

编译openssl 1.0.0e,“openssl版本”仍然返回0.9.8k ..我做错了什么?

摆脱“gcc – / usr / bin / ld:warning lib找不到”

从源代码编译PHP后,仍然需要开发库?

使用MSVC2010使用/ MT编译静态QT库

Cython编译为exe,Windows

如何使libusb库对另一个程序可见?

编译错误:Fprintf抛出parsing错误

在Windows上编译win32 api c程序(通过命令行)的例子

如果您使用的是64位编译器,请尝试使用-m32标志,并将其与-L/usr/lib/i386-linux-gnu/用于32位库链接

顺便说一句,如果你将编译这个源代码,你仍然会遇到一个运行问题,因为这个版本需要320×200的屏幕分辨率。 否则它不会运行。

我正在开发DOOM的SDL端口,所以您可以尝试从GitHub获取我的源代码

您将需要安装SDL库才能运行它。 另外,那里没有声音。

至于初始化列表错误,就在那里 – 初始化列表中的元素不是常量表达式。 看看这个:

{"mousedev",

我猜mousedev是另一个变量。 你有它。

我现在不记得了,但我认为初始化列表中的非常量是在后来的C标准之一中引入的。 尝试使编译器坚持不同的 – 我会用C99的一个镜头。 http://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html#C-Dialect-Options

关于整数与指针大小有关的一个是由Alex正确回答的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐