无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 2890|回复: 3
打印 上一主题 下一主题

[求助] grub4dos_dev环境下 编译外部命令出错

[复制链接]
跳转到指定楼层
1#
发表于 2016-7-10 22:18:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
环境是grub4dos_dev_2014-06-25 代码是版本库最新的
   gcc version 4.8.0 20130127 (experimental) [trunk revision 195497] (Debian 4.8-20130127-1)
准备自己写个命令,先尝试编译已有的

root@grub4dos_dev:/mnt/cofs/grub4dos_src/grubutils/g4dext# sh build
: Input/output error
: Input/output error
build: line 24: syntax error: unexpected word (expecting "do")

然后尝试按照源代码里面的编译命令编译
dev@grub4dos_dev:/mnt/cofs/grub4dos_src/grubutils/g4dext$ gcc -Wl,--build-id=non
e -DASM_BUILD_DATE="\"20160710"\" -I ../include -m32 -mno-sse -nostdlib -fno-zer
o-initialized-in-bss -fno-function-cse -fno-jump-tables -Wl,-N -fPIE hotkey.c -o
hotkey.o
/tmp/cch3PVfu.s: Assembler messages:
/tmp/cch3PVfu.s:436: Error: junk at end of line, first unrecognized character is
`2'
是不是GCC版本要更新??
2#
 楼主| 发表于 2016-7-10 22:24:11 | 只看该作者
我换了个虚拟重新试了下
[root@localhost g4dext]# bash build
build:行3: $'\r': 未找到命令
build:行8: $'\r': 未找到命令
build:行24: 未预期的符号 `$'do\r'' 附近有语法错误
'uild:行24: `for file in *.c;do
[root@localhost g4dext]# bash build
build bios.c --> ./tmp/bios.o --> ./bin/bios
build chkpci.c --> ./tmp/chkpci.o --> ./bin/chkpci
build date.c --> ./tmp/date.o --> ./bin/date
build diskid.c --> ./tmp/diskid.o --> ./bin/diskid
build echo.c --> ./tmp/echo.o --> ./bin/echo
build fontfile.c --> ./tmp/fontfile.o --> ./bin/fontfile
fontfile.c: 在函数‘main’中:
fontfile.c:106:45: 错误:‘p’未声明(在此函数内第一次使用)
   memmove((char *)BASE_FONT_ADDR + filemax ,p,(int)&GRUB - (int)p );
                                             ^
fontfile.c:106:45: 附注:每个未声明的标识符在其出现的函数内只报告一次
build g4d_off.c --> ./tmp/g4d_off.o --> ./bin/g4d_off
build hotkey.c --> ./tmp/hotkey.o --> ./bin/hotkey
build inifile.c --> ./tmp/inifile.o --> ./bin/inifile
build mbrcheck.c --> ./tmp/mbrcheck.o --> ./bin/mbrcheck
build memcheck.c --> ./tmp/memcheck.o --> ./bin/memcheck
build menuset.c --> ./tmp/menuset.o --> ./bin/menuset
build snake.c --> ./tmp/snake.o --> ./bin/snake
build time.c --> ./tmp/time.o --> ./bin/time
build umbr.c --> ./tmp/umbr.o --> ./bin/umbr
umbr.c:27:26: 致命错误:../umbr/umbr.h:没有那个文件或目录
#include "../umbr/umbr.h"
                          ^
编译中断。
build unifont.c --> ./tmp/unifont.o --> ./bin/unifont
build unitest.c --> ./tmp/unitest.o --> ./bin/unitest
build vbe.c --> ./tmp/vbe.o --> ./bin/vbe
vbe.c: 在函数‘main’中:
vbe.c:248:16: 警告:从不兼容的指针类型赋值 [默认启用]
   vesa.PUTCHAR = vbe_putchar;
                ^
vbe.c:255:17: 警告:从不兼容的指针类型赋值 [默认启用]
   vesa.SETCOLOR = vbe_setcolor;
                 ^
vbe.c:257:16: 警告:从不兼容的指针类型赋值 [默认启用]
   vesa.STARTUP = vbe_init;
                ^
build vbmp.c --> ./tmp/vbmp.o --> ./bin/vbmp
build vfont.c --> ./tmp/vfont.o --> ./bin/vfont
build wenv.c --> ./tmp/wenv.o --> ./bin/wenv
回复

使用道具 举报

3#
 楼主| 发表于 2016-7-10 22:30:15 | 只看该作者
是不是在需要bash的脚本的第一行写上"#!/bin/bash"  ?
build 文件换行是不是有问,我另存为仅LF换行 就可以执行了,还是因为我虚拟机里面连接不上版本库,在windows下载的原因.
回复

使用道具 举报

4#
发表于 2016-7-11 08:29:27 | 只看该作者
貌似当  Makefile 存在时,应该直接敲入 make 命令进行编译,不需要执行 build 脚本。

Unix 的系统,通常都不能有回车符,只能用换行符。原来的代码没问题,是你的下载软件在下载时自动添加的回车符。

用 svn 或 git 命令下载源代码就不会添加回车符。用 ftp 命令下载有可能自动添加回车符。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-30 05:52

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表