免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2235 | 回复: 6
打印 上一主题 下一主题

精通Makefile的朋友请进,谢谢 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-21 11:22 |只看该作者 |倒序浏览
想要在PXA310上跑Blob,编译了一下还可以,但是当加入对cramfs支持时,发现编译错误,追踪后怀疑可能是Makefile的原因,因此请教一下Makefile高手。


root@rocky-desktop:~/work/notes/bootloader/pxa-blob/utils# pwd
/root/work/notes/bootloader/pxa-blob/utils
root@rocky-desktop:~/work/notes/bootloader/pxa-blob/utils# cat Makefile.am
# -*- makefile -*-
#
# $Id: Makefile.am,v 1.10 2003/09/01 20:13:10 russd Exp $
#
# This is a special Makefile because it plays with a CC and CFLAGS
# to compile with the native C compiler (which we assume is gcc).
# The manipulation of the VPATH is needed to be able to compile
# sources from other directories. -- Erik
#


VPATH = $(top_srcdir )/utils/test (top_srcdir )/src/blob (top_srcdir )/src/lib


DEFAULT_INCLUDES =
CC = gcc


bin_PROGRAMS        = \
        load_kernel_test


load_kernel_test_SOURCES =  \
        load_kernel_test.c \
        ${top_srcdir}/src/blob/load_kernel.c \
        ${top_srcdir}/src/lib/md5.c \
        ${top_srcdir}/src/lib/md5support.c \
        ${top_srcdir}/src/lib/mini_inflate.c \
        ${top_srcdir}/src/lib/error.c \
        ${top_srcdir}/src/blob/flash.c \
        ${top_srcdir}/src/blob/partition.c \
        ${top_srcdir}/src/lib/util.c \
        ${top_srcdir}/src/blob/zImage.c \
        ${top_srcdir}/src/lib/crc32.c


load_kernel_test_CFLAGS = -g -O2 -Wall \
        -DHAVE_CONFIG_H -DUSER_SPACE_TEST -DUSE_BLOB_TOGETHER_WITH_LIBC \
        -I${top_builddir}/include \
        -I${top_srcdir}/include \
        -I@LINUX_INCLUDE@


load_kernel_test_LDFLAGS =



CLEANFILES = ${srcdir}/*~



CLEANFILES = ${srcdir}/*~


make 后的错误信息:
make[2]: Leaving directory `/root/work/notes/bootloader/pxa-blob/utils/mkparamblock'
Making all in test
make[2]: Entering directory `/root/work/notes/bootloader/pxa-blob/utils/test'
gcc -DHAVE_CONFIG_H     -g -O2 -Wall -DHAVE_CONFIG_H -DUSER_SPACE_TEST -DUSE_BLOB_TOGETHER_WITH_LIBC -I../../include -I../../include -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -g -O1 -W -Wall -DCONFIG_CPU_MONAHANS_LV -DLITTLETON -Wa,--defsym,CONFIG_CPU_MONAHANS_LV=1 -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -MT load_kernel_test-load_kernel_test.o -MD -MP -MF .deps/load_kernel_test-load_kernel_test.Tpo -c -o load_kernel_test-load_kernel_test.o `test -f 'load_kernel_test.c' || echo './'`load_kernel_test.c
mv -f .deps/load_kernel_test-load_kernel_test.Tpo .deps/load_kernel_test-load_kernel_test.Po
gcc -DHAVE_CONFIG_H     -g -O2 -Wall -DHAVE_CONFIG_H -DUSER_SPACE_TEST -DUSE_BLOB_TOGETHER_WITH_LIBC -I../../include -I../../include -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -g -O1 -W -Wall -DCONFIG_CPU_MONAHANS_LV -DLITTLETON -Wa,--defsym,CONFIG_CPU_MONAHANS_LV=1 -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -MT load_kernel_test-load_kernel.o -MD -MP -MF .deps/load_kernel_test-load_kernel.Tpo -c -o load_kernel_test-load_kernel.o `test -f '../../src/blob/load_kernel.c' || echo './'`../../src/blob/load_kernel.c
mv -f .deps/load_kernel_test-load_kernel.Tpo .deps/load_kernel_test-load_kernel.Po
gcc -DHAVE_CONFIG_H     -g -O2 -Wall -DHAVE_CONFIG_H -DUSER_SPACE_TEST -DUSE_BLOB_TOGETHER_WITH_LIBC -I../../include -I../../include -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -g -O1 -W -Wall -DCONFIG_CPU_MONAHANS_LV -DLITTLETON -Wa,--defsym,CONFIG_CPU_MONAHANS_LV=1 -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -MT load_kernel_test-md5.o -MD -MP -MF .deps/load_kernel_test-md5.Tpo -c -o load_kernel_test-md5.o `test -f '../../src/lib/md5.c' || echo './'`../../src/lib/md5.c
mv -f .deps/load_kernel_test-md5.Tpo .deps/load_kernel_test-md5.Po
gcc -DHAVE_CONFIG_H     -g -O2 -Wall -DHAVE_CONFIG_H -DUSER_SPACE_TEST -DUSE_BLOB_TOGETHER_WITH_LIBC -I../../include -I../../include -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -g -O1 -W -Wall -DCONFIG_CPU_MONAHANS_LV -DLITTLETON -Wa,--defsym,CONFIG_CPU_MONAHANS_LV=1 -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -MT load_kernel_test-md5support.o -MD -MP -MF .deps/load_kernel_test-md5support.Tpo -c -o load_kernel_test-md5support.o `test -f '../../src/lib/md5support.c' || echo './'`../../src/lib/md5support.c
mv -f .deps/load_kernel_test-md5support.Tpo .deps/load_kernel_test-md5support.Po
gcc -DHAVE_CONFIG_H     -g -O2 -Wall -DHAVE_CONFIG_H -DUSER_SPACE_TEST -DUSE_BLOB_TOGETHER_WITH_LIBC -I../../include -I../../include -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -g -O1 -W -Wall -DCONFIG_CPU_MONAHANS_LV -DLITTLETON -Wa,--defsym,CONFIG_CPU_MONAHANS_LV=1 -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -MT load_kernel_test-mini_inflate.o -MD -MP -MF .deps/load_kernel_test-mini_inflate.Tpo -c -o load_kernel_test-mini_inflate.o `test -f '../../src/lib/mini_inflate.c' || echo './'`../../src/lib/mini_inflate.c
../../src/lib/mini_inflate.c: 在函数 ‘pull_bits’ 中:
../../src/lib/mini_inflate.c:151: 警告: 比较有符号和无符号数
../../src/lib/mini_inflate.c: 在函数 ‘decompress_huffman’ 中:
../../src/lib/mini_inflate.c:251: 警告: ‘dest’ 上的运算结果可能是未定义的
../../src/lib/mini_inflate.c: 在函数 ‘decompress_block’ 中:
../../src/lib/mini_inflate.c:441: 警告: 有符号和无符号类型一起出现在条件表达式中
mv -f .deps/load_kernel_test-mini_inflate.Tpo .deps/load_kernel_test-mini_inflate.Po
gcc -DHAVE_CONFIG_H     -g -O2 -Wall -DHAVE_CONFIG_H -DUSER_SPACE_TEST -DUSE_BLOB_TOGETHER_WITH_LIBC -I../../include -I../../include -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -g -O1 -W -Wall -DCONFIG_CPU_MONAHANS_LV -DLITTLETON -Wa,--defsym,CONFIG_CPU_MONAHANS_LV=1 -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -MT load_kernel_test-error.o -MD -MP -MF .deps/load_kernel_test-error.Tpo -c -o load_kernel_test-error.o `test -f '../../src/lib/error.c' || echo './'`../../src/lib/error.c
mv -f .deps/load_kernel_test-error.Tpo .deps/load_kernel_test-error.Po
gcc -DHAVE_CONFIG_H     -g -O2 -Wall -DHAVE_CONFIG_H -DUSER_SPACE_TEST -DUSE_BLOB_TOGETHER_WITH_LIBC -I../../include -I../../include -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -g -O1 -W -Wall -DCONFIG_CPU_MONAHANS_LV -DLITTLETON -Wa,--defsym,CONFIG_CPU_MONAHANS_LV=1 -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -MT load_kernel_test-flash.o -MD -MP -MF .deps/load_kernel_test-flash.Tpo -c -o load_kernel_test-flash.o `test -f '../../src/blob/flash.c' || echo './'`../../src/blob/flash.c
../../src/blob/flash.c: 在函数 ‘init_flash’ 中:
../../src/blob/flash.c:136: 警告: 比较有符号和无符号数
../../src/blob/flash.c:166: 警告: if 语句体为空
../../src/blob/flash.c:170: 警告: 比较有符号和无符号数
mv -f .deps/load_kernel_test-flash.Tpo .deps/load_kernel_test-flash.Po
gcc -DHAVE_CONFIG_H     -g -O2 -Wall -DHAVE_CONFIG_H -DUSER_SPACE_TEST -DUSE_BLOB_TOGETHER_WITH_LIBC -I../../include -I../../include -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -g -O1 -W -Wall -DCONFIG_CPU_MONAHANS_LV -DLITTLETON -Wa,--defsym,CONFIG_CPU_MONAHANS_LV=1 -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -MT load_kernel_test-partition.o -MD -MP -MF .deps/load_kernel_test-partition.Tpo -c -o load_kernel_test-partition.o `test -f '../../src/blob/partition.c' || echo './'`../../src/blob/partition.c
../../src/blob/partition.c: 在函数 ‘ptprint’ 中:
../../src/blob/partition.c:471: 警告: 未使用的参数 ‘argc’
../../src/blob/partition.c:471: 警告: 未使用的参数 ‘argv’
mv -f .deps/load_kernel_test-partition.Tpo .deps/load_kernel_test-partition.Po
gcc -DHAVE_CONFIG_H     -g -O2 -Wall -DHAVE_CONFIG_H -DUSER_SPACE_TEST -DUSE_BLOB_TOGETHER_WITH_LIBC -I../../include -I../../include -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -g -O1 -W -Wall -DCONFIG_CPU_MONAHANS_LV -DLITTLETON -Wa,--defsym,CONFIG_CPU_MONAHANS_LV=1 -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -MT load_kernel_test-util.o -MD -MP -MF .deps/load_kernel_test-util.Tpo -c -o load_kernel_test-util.o `test -f '../../src/lib/util.c' || echo './'`../../src/lib/util.c
mv -f .deps/load_kernel_test-util.Tpo .deps/load_kernel_test-util.Po
gcc -DHAVE_CONFIG_H     -g -O2 -Wall -DHAVE_CONFIG_H -DUSER_SPACE_TEST -DUSE_BLOB_TOGETHER_WITH_LIBC -I../../include -I../../include -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -g -O1 -W -Wall -DCONFIG_CPU_MONAHANS_LV -DLITTLETON -Wa,--defsym,CONFIG_CPU_MONAHANS_LV=1 -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -MT load_kernel_test-zImage.o -MD -MP -MF .deps/load_kernel_test-zImage.Tpo -c -o load_kernel_test-zImage.o `test -f '../../src/blob/zImage.c' || echo './'`../../src/blob/zImage.c
../../src/blob/zImage.c: 在函数 ‘zImage_load_kernel’ 中:
../../src/blob/zImage.c:55: 警告: 比较有符号和无符号数
../../src/blob/zImage.c:47: 警告: 未使用的参数 ‘filename’
mv -f .deps/load_kernel_test-zImage.Tpo .deps/load_kernel_test-zImage.Po
gcc -DHAVE_CONFIG_H     -g -O2 -Wall -DHAVE_CONFIG_H -DUSER_SPACE_TEST -DUSE_BLOB_TOGETHER_WITH_LIBC -I../../include -I../../include -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -g -O1 -W -Wall -DCONFIG_CPU_MONAHANS_LV -DLITTLETON -Wa,--defsym,CONFIG_CPU_MONAHANS_LV=1 -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -MT load_kernel_test-crc32.o -MD -MP -MF .deps/load_kernel_test-crc32.Tpo -c -o load_kernel_test-crc32.o `test -f '../../src/lib/crc32.c' || echo './'`../../src/lib/crc32.c
mv -f .deps/load_kernel_test-crc32.Tpo .deps/load_kernel_test-crc32.Po
gcc -g -O2 -Wall -DHAVE_CONFIG_H -DUSER_SPACE_TEST -DUSE_BLOB_TOGETHER_WITH_LIBC -I../../include -I../../include -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -g -O1 -W -Wall -DCONFIG_CPU_MONAHANS_LV -DLITTLETON -Wa,--defsym,CONFIG_CPU_MONAHANS_LV=1 -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include   -o load_kernel_test load_kernel_test-load_kernel_test.o load_kernel_test-load_kernel.o load_kernel_test-md5.o load_kernel_test-md5support.o load_kernel_test-mini_inflate.o load_kernel_test-error.o load_kernel_test-flash.o load_kernel_test-partition.o load_kernel_test-util.o load_kernel_test-zImage.o load_kernel_test-crc32.o  
load_kernel_test-load_kernel.o: In function `load_kernel':
/root/work/notes/bootloader/pxa-blob/utils/test/../../src/blob/load_kernel.c:110: undefined reference to `cramfs_load'
/root/work/notes/bootloader/pxa-blob/utils/test/../../src/blob/load_kernel.c:120: undefined reference to `cramfs_load'
/root/work/notes/bootloader/pxa-blob/utils/test/../../src/blob/load_kernel.c:122: undefined reference to `cramfs_load'

load_kernel_test-load_kernel.o.data+0x0): undefined reference to `cramfs_load'
collect2: ld 返回 1
make[2]: *** [load_kernel_test] 错误 1
make[2]: Leaving directory `/root/work/notes/bootloader/pxa-blob/utils/test'
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/root/work/notes/bootloader/pxa-blob/utils'
make: *** [all-recursive] 错误 1


解释一下蓝色的cramfs_load这个函数在src/blob/cramfsl.c中定义;
而src/blob/load_kernel.c中会调用cramfs_load这个函数,之所以出现所无我觉得是因为Makefile.am中:

load_kernel_test_SOURCES =  \
        load_kernel_test.c \
        ${top_srcdir}/src/blob/load_kernel.c \   <-------在链接load_kernel.o之前cramfs.o必须的有,这样链接的时候就不会出现符号解析的错误了,因此我修改了Makefile.am
        ${top_srcdir}/src/lib/md5.c \
        ${top_srcdir}/src/lib/md5support.c \
        ${top_srcdir}/src/lib/mini_inflate.c \
        ${top_srcdir}/src/lib/error.c \
        ${top_srcdir}/src/blob/flash.c \
        ${top_srcdir}/src/blob/partition.c \
        ${top_srcdir}/src/lib/util.c \
        ${top_srcdir}/src/blob/zImage.c \
        ${top_srcdir}/src/lib/crc32.c

论坛徽章:
0
2 [报告]
发表于 2008-05-21 11:22 |只看该作者
接一楼:

修改后的Makefile.am

VPATH = $(top_srcdir)/utils/test(top_srcdir)/src/blob(top_srcdir)/src/lib


DEFAULT_INCLUDES =
CC = gcc


bin_PROGRAMS        = \
        load_kernel_test


load_kernel_test_SOURCES = \
        load_kernel_test.c \
        ${top_srcdir}/src/blob/cramfs.c \
        ${top_srcdir}/src/blob/load_kernel.c \

        ${top_srcdir}/src/lib/md5.c \
        ${top_srcdir}/src/lib/md5support.c \
        ${top_srcdir}/src/lib/mini_inflate.c \
        ${top_srcdir}/src/lib/error.c \
        ${top_srcdir}/src/blob/flash.c \
        ${top_srcdir}/src/blob/partition.c \
        ${top_srcdir}/src/lib/util.c \
        ${top_srcdir}/src/blob/zImage.c \
        ${top_srcdir}/src/lib/crc32.c

load_kernel_test_CFLAGS = -g -O2 -Wall \
        -DHAVE_CONFIG_H -DUSER_SPACE_TEST -DUSE_BLOB_TOGETHER_WITH_LIBC \
        -I${top_builddir}/include \
        -I${top_srcdir}/include \
        -I@LINUX_INCLUDE@


load_kernel_test_LDFLAGS =



CLEANFILES = ${srcdir}/*~


重新configure后make 错误依旧:
Making all in test
make[2]: Entering directory `/root/work/notes/bootloader/pxa-blob/utils/test'

gcc -DHAVE_CONFIG_H     -g -O2 -Wall -DHAVE_CONFIG_H -DUSER_SPACE_TEST -DUSE_BLOB_TOGETHER_WITH_LIBC -I../../include -I../../include -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -g -O1 -W -Wall -DCONFIG_CPU_MONAHANS_LV -DLITTLETON -Wa,--defsym,CONFIG_CPU_MONAHANS_LV=1 -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -MT load_kernel_test-load_kernel_test.o -MD -MP -MF .deps/load_kernel_test-load_kernel_test.Tpo -c -o load_kernel_test-load_kernel_test.o `test -f 'load_kernel_test.c' || echo './'`load_kernel_test.c
mv -f .deps/load_kernel_test-load_kernel_test.Tpo .deps/load_kernel_test-load_kernel_test.Po

gcc -DHAVE_CONFIG_H     -g -O2 -Wall -DHAVE_CONFIG_H -DUSER_SPACE_TEST -DUSE_BLOB_TOGETHER_WITH_LIBC -I../../include -I../../include -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -g -O1 -W -Wall -DCONFIG_CPU_MONAHANS_LV -DLITTLETON -Wa,--defsym,CONFIG_CPU_MONAHANS_LV=1 -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -MT load_kernel_test-load_kernel.o -MD -MP -MF .deps/load_kernel_test-load_kernel.Tpo -c -o load_kernel_test-load_kernel.o `test -f '../../src/blob/load_kernel.c' || echo './'`../../src/blob/load_kernel.c
mv -f .deps/load_kernel_test-load_kernel.Tpo .deps/load_kernel_test-load_kernel.Po

gcc -DHAVE_CONFIG_H     -g -O2 -Wall -DHAVE_CONFIG_H -DUSER_SPACE_TEST -DUSE_BLOB_TOGETHER_WITH_LIBC -I../../include -I../../include -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -g -O1 -W -Wall -DCONFIG_CPU_MONAHANS_LV -DLITTLETON -Wa,--defsym,CONFIG_CPU_MONAHANS_LV=1 -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -MT load_kernel_test-md5.o -MD -MP -MF .deps/load_kernel_test-md5.Tpo -c -o load_kernel_test-md5.o `test -f '../../src/lib/md5.c' || echo './'`../../src/lib/md5.c
mv -f .deps/load_kernel_test-md5.Tpo .deps/load_kernel_test-md5.Po

gcc -DHAVE_CONFIG_H     -g -O2 -Wall -DHAVE_CONFIG_H -DUSER_SPACE_TEST -DUSE_BLOB_TOGETHER_WITH_LIBC -I../../include -I../../include -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -g -O1 -W -Wall -DCONFIG_CPU_MONAHANS_LV -DLITTLETON -Wa,--defsym,CONFIG_CPU_MONAHANS_LV=1 -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -MT load_kernel_test-md5support.o -MD -MP -MF .deps/load_kernel_test-md5support.Tpo -c -o load_kernel_test-md5support.o `test -f '../../src/lib/md5support.c' || echo './'`../../src/lib/md5support.c
mv -f .deps/load_kernel_test-md5support.Tpo .deps/load_kernel_test-md5support.Po

gcc -DHAVE_CONFIG_H     -g -O2 -Wall -DHAVE_CONFIG_H -DUSER_SPACE_TEST -DUSE_BLOB_TOGETHER_WITH_LIBC -I../../include -I../../include -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -g -O1 -W -Wall -DCONFIG_CPU_MONAHANS_LV -DLITTLETON -Wa,--defsym,CONFIG_CPU_MONAHANS_LV=1 -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -MT load_kernel_test-mini_inflate.o -MD -MP -MF .deps/load_kernel_test-mini_inflate.Tpo -c -o load_kernel_test-mini_inflate.o `test -f '../../src/lib/mini_inflate.c' || echo './'`../../src/lib/mini_inflate.c
../../src/lib/mini_inflate.c: 在函数 ‘pull_bits’ 中:
../../src/lib/mini_inflate.c:151: 警告: 比较有符号和无符号数
../../src/lib/mini_inflate.c: 在函数 ‘decompress_huffman’ 中:
../../src/lib/mini_inflate.c:251: 警告: ‘dest’ 上的运算结果可能是未定义的
../../src/lib/mini_inflate.c: 在函数 ‘decompress_block’ 中:
../../src/lib/mini_inflate.c:441: 警告: 有符号和无符号类型一起出现在条件表达式中
mv -f .deps/load_kernel_test-mini_inflate.Tpo .deps/load_kernel_test-mini_inflate.Po

gcc -DHAVE_CONFIG_H     -g -O2 -Wall -DHAVE_CONFIG_H -DUSER_SPACE_TEST -DUSE_BLOB_TOGETHER_WITH_LIBC -I../../include -I../../include -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -g -O1 -W -Wall -DCONFIG_CPU_MONAHANS_LV -DLITTLETON -Wa,--defsym,CONFIG_CPU_MONAHANS_LV=1 -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -MT load_kernel_test-error.o -MD -MP -MF .deps/load_kernel_test-error.Tpo -c -o load_kernel_test-error.o `test -f '../../src/lib/error.c' || echo './'`../../src/lib/error.c
mv -f .deps/load_kernel_test-error.Tpo .deps/load_kernel_test-error.Po

gcc -DHAVE_CONFIG_H     -g -O2 -Wall -DHAVE_CONFIG_H -DUSER_SPACE_TEST -DUSE_BLOB_TOGETHER_WITH_LIBC -I../../include -I../../include -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -g -O1 -W -Wall -DCONFIG_CPU_MONAHANS_LV -DLITTLETON -Wa,--defsym,CONFIG_CPU_MONAHANS_LV=1 -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -MT load_kernel_test-flash.o -MD -MP -MF .deps/load_kernel_test-flash.Tpo -c -o load_kernel_test-flash.o `test -f '../../src/blob/flash.c' || echo './'`../../src/blob/flash.c
../../src/blob/flash.c: 在函数 ‘init_flash’ 中:
../../src/blob/flash.c:136: 警告: 比较有符号和无符号数
../../src/blob/flash.c:166: 警告: if 语句体为空
../../src/blob/flash.c:170: 警告: 比较有符号和无符号数
mv -f .deps/load_kernel_test-flash.Tpo .deps/load_kernel_test-flash.Po

gcc -DHAVE_CONFIG_H     -g -O2 -Wall -DHAVE_CONFIG_H -DUSER_SPACE_TEST -DUSE_BLOB_TOGETHER_WITH_LIBC -I../../include -I../../include -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -g -O1 -W -Wall -DCONFIG_CPU_MONAHANS_LV -DLITTLETON -Wa,--defsym,CONFIG_CPU_MONAHANS_LV=1 -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -MT load_kernel_test-partition.o -MD -MP -MF .deps/load_kernel_test-partition.Tpo -c -o load_kernel_test-partition.o `test -f '../../src/blob/partition.c' || echo './'`../../src/blob/partition.c
../../src/blob/partition.c: 在函数 ‘ptprint’ 中:
../../src/blob/partition.c:471: 警告: 未使用的参数 ‘argc’
../../src/blob/partition.c:471: 警告: 未使用的参数 ‘argv’
mv -f .deps/load_kernel_test-partition.Tpo .deps/load_kernel_test-partition.Po

gcc -DHAVE_CONFIG_H     -g -O2 -Wall -DHAVE_CONFIG_H -DUSER_SPACE_TEST -DUSE_BLOB_TOGETHER_WITH_LIBC -I../../include -I../../include -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -g -O1 -W -Wall -DCONFIG_CPU_MONAHANS_LV -DLITTLETON -Wa,--defsym,CONFIG_CPU_MONAHANS_LV=1 -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -MT load_kernel_test-util.o -MD -MP -MF .deps/load_kernel_test-util.Tpo -c -o load_kernel_test-util.o `test -f '../../src/lib/util.c' || echo './'`../../src/lib/util.c
mv -f .deps/load_kernel_test-util.Tpo .deps/load_kernel_test-util.Po

gcc -DHAVE_CONFIG_H     -g -O2 -Wall -DHAVE_CONFIG_H -DUSER_SPACE_TEST -DUSE_BLOB_TOGETHER_WITH_LIBC -I../../include -I../../include -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -g -O1 -W -Wall -DCONFIG_CPU_MONAHANS_LV -DLITTLETON -Wa,--defsym,CONFIG_CPU_MONAHANS_LV=1 -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -MT load_kernel_test-zImage.o -MD -MP -MF .deps/load_kernel_test-zImage.Tpo -c -o load_kernel_test-zImage.o `test -f '../../src/blob/zImage.c' || echo './'`../../src/blob/zImage.c
../../src/blob/zImage.c: 在函数 ‘zImage_load_kernel’ 中:
../../src/blob/zImage.c:55: 警告: 比较有符号和无符号数
../../src/blob/zImage.c:47: 警告: 未使用的参数 ‘filename’
mv -f .deps/load_kernel_test-zImage.Tpo .deps/load_kernel_test-zImage.Po

gcc -DHAVE_CONFIG_H     -g -O2 -Wall -DHAVE_CONFIG_H -DUSER_SPACE_TEST -DUSE_BLOB_TOGETHER_WITH_LIBC -I../../include -I../../include
-I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -g -O1 -W -Wall -DCONFIG_CPU_MONAHANS_LV -DLITTLETON -Wa,--defsym,CONFIG_CPU_MONAHANS_LV=1 -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -MT load_kernel_test-crc32.o -MD -MP -MF .deps/load_kernel_test-crc32.Tpo -c -o load_kernel_test-crc32.o `test -f '../../src/lib/crc32.c' || echo './'`../../src/lib/crc32.c
mv -f .deps/load_kernel_test-crc32.Tpo .deps/load_kernel_test-crc32.Po

gcc -g -O2 -Wall -DHAVE_CONFIG_H -DUSER_SPACE_TEST -DUSE_BLOB_TOGETHER_WITH_LIBC -I../../include -I../../include -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include -g -O1 -W -Wall -DCONFIG_CPU_MONAHANS_LV -DLITTLETON -Wa,--defsym,CONFIG_CPU_MONAHANS_LV=1 -I/root/work/bootloader/pxa310_linux/pxa_dir/src/preview-kit/linux//include   -o load_kernel_test load_kernel_test-load_kernel_test.o load_kernel_test-load_kernel.o load_kernel_test-md5.o load_kernel_test-md5support.o load_kernel_test-mini_inflate.o load_kernel_test-error.o load_kernel_test-flash.o load_kernel_test-partition.o load_kernel_test-util.o load_kernel_test-zImage.o load_kernel_test-crc32.o  
load_kernel_test-load_kernel.o: In function `load_kernel':
/root/work/notes/bootloader/pxa-blob/utils/test/../../src/blob/load_kernel.c:110: undefined reference to `cramfs_load'
/root/work/notes/bootloader/pxa-blob/utils/test/../../src/blob/load_kernel.c:120: undefined reference to `cramfs_load'
/root/work/notes/bootloader/pxa-blob/utils/test/../../src/blob/load_kernel.c:122: undefined reference to `cramfs_load'
load_kernel_test-load_kernel.o.data+0x0): undefined reference to `cramfs_load'
collect2: ld 返回 1
make[2]: *** [load_kernel_test] 错误 1
make[2]: Leaving directory `/root/work/notes/bootloader/pxa-blob/utils/test'
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/root/work/notes/bootloader/pxa-blob/utils'
make: *** [all-recursive] 错误 1

从编译的的顺序来看(绿色标注的源文件),cramfs.c并没有被编译,Makefile.am生成Makefile.in ,Makefile.in生成最终的Makefile ,我看了一下makefile是这样的:
load_kernel_test_SOURCES = \
        load_kernel_test.c \
        ${top_srcdir}/src/blob/cramfs.c \
        ${top_srcdir}/src/blob/load_kernel.c \
        ${top_srcdir}/src/lib/md5.c \
        ${top_srcdir}/src/lib/md5support.c \
        ${top_srcdir}/src/lib/mini_inflate.c \
        ${top_srcdir}/src/lib/error.c \
        ${top_srcdir}/src/blob/flash.c \
        ${top_srcdir}/src/blob/partition.c \
        ${top_srcdir}/src/lib/util.c \
        ${top_srcdir}/src/blob/zImage.c \
        ${top_srcdir}/src/lib/crc32.c

请教一下为什么cramfs.c没有被编译呢?或者如何解决这个编译错误

谢谢

[ 本帖最后由 rocky1972 于 2008-5-21 11:31 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2008-05-21 13:35 |只看该作者
查找一下cramfs_load
在哪个代码中,看看文件有没有编译和链接

论坛徽章:
0
4 [报告]
发表于 2008-05-21 13:38 |只看该作者
看 Makefile 里面有没有,如果 Makefile.am 里有, Makefile 里却没有,请执行一下 automake

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
5 [报告]
发表于 2008-05-21 13:54 |只看该作者
看看你是不是在这几个目录中VPATH = $(top_srcdir )/utils/test  (top_srcdir )/src/blob  (top_srcdir )/src/lib

make过..

如果makefile中指定的要编译的文件..而结果没有编译.可能说明它知道那个.o文件已经编译过了..

论坛徽章:
0
6 [报告]
发表于 2008-05-21 16:41 |只看该作者
原帖由 s5unty 于 2008-5-21 13:38 发表
看 Makefile 里面有没有,如果 Makefile.am 里有, Makefile 里却没有,请执行一下 automake

原帖由 gawk 于 2008-5-21 13:35 发表
查找一下cramfs_load
在哪个代码中,看看文件有没有编译和链接


链接的时候找不到的那个函数是cramfs_load ,这个函数在cramfs.c中;
我以修改了Makefile,但是还是没有编译cramfs.c
2楼有详细说明

论坛徽章:
0
7 [报告]
发表于 2008-05-21 16:42 |只看该作者
原帖由 cookis 于 2008-5-21 13:54 发表
看看你是不是在这几个目录中VPATH = $(top_srcdir )/utils/test  (top_srcdir )/src/blob  (top_srcdir )/src/lib

make过..

如果makefile中指定的要编译的文件..而结果没有编译.可能说明它知道那个.o文件 ...



执行make之前我已经make distclean了
因此这问题很可能不存在
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP