当前位置:  技术问答>linux和unix

帮忙改一下Makefile

    来源: 互联网  发布时间:2016-01-10

    本文导语:  一个目录下有四个文件:Makefile、print.c、print.h、test.c test.c -------------------------------------------------- #include  #include  #include  #include "print.h" int init_module(void) {     char a[20];     strcpy(a, "Hello worldn");     print((vo...

一个目录下有四个文件:Makefile、print.c、print.h、test.c

test.c
--------------------------------------------------
#include 
#include 
#include 

#include "print.h"

int init_module(void)
{
    char a[20];
    strcpy(a, "Hello worldn");
    print((void*)a);
    return 0;
}

void cleanup_module(void)
{
    printk("Goodbye cruel world n");
}

MODULE_LICENSE("GPL");
--------------------------------------------------


print.c
--------------------------------------------------
#include 
#include 
#include 

int print(void* data)
{
    return printk("sting: %sn", (char*)data);
}
-------------------------------------------------


print.h
---------------------------------------------------
extern int print(void*);
--------------------------------------------------


Makefile
-------------------------------------------------
CC=gcc
KERNELDIR=/usr/src/linux-$(shell uname -r)

MODCFLAGS:=-Wall -DMODULE -D__KERNEL__ -DLINUX -I $(KERNELDIR)/include
 
test.o: test.c print.h print.c /usr/include/linux/version.h
$(CC) $(MODCFLAGS) -c test.c print.c

clean:
rm -f *.o
-------------------------------------------------

现在用“make”编译后回出现print.o和test.o两个文件,“insmod test.o”会出现“test.o: unresolved symbol print”的信息。上面Makefile应该怎么改?

|
“test.o: unresolved symbol print”是说test.c中调用到函数print但前面没有声明函数原型,所以这不是make的问题而是C语法问题,应在test.c前include声明了print函数原型的.h文件。

|
sorry刚才没看仔细瞎说了 -_-*
#include "print.h"已经声明了,compile没有问题的,是link时找不到print的函数体了。

|
$(CC) $(MODCFLAGS) -c test.c print.c
ld demo.o  test.o print.o (ld具体的使用方法请自己查)

|
不好意思,手头没有Linux没法验证。用下面的试一下吧:
----------------------------------------------------------------------
CC=gcc
KERNELDIR=/usr/src/linux-$(shell uname -r)

MODCFLAGS:=-Wall -DMODULE -D__KERNEL__ -DLINUX -I $(KERNELDIR)/include
 
.SUFFIXES: .c .o
.c.o:
$(CC) $(MODCFLAGS)  $

    
 
 

您可能感兴趣的文章:

  • 初写MAKEFILE遇到问题,麻烦大家帮忙。
  • 新手求救,关于内核makefile,请帮忙!
  • 帮帮忙啊!关于用makefile编译?
  • 帮忙看makefile啊
  • 请大家帮忙看一下我的Makefile
  • makefile的出错,请帮忙看看
  • 帮忙看个makefile
  • 一个简单的MAKEFILE问题, 高手帮忙看一下.
  • 一个看不懂的makefile 求帮忙 iis7站长之家
  • 一个看不懂的makefile 求帮忙
  • 帮忙解释一下makefile里的一个问题
  • 请大侠帮帮忙,我的makefile的内容在执行make的时候怎么不连续?
  • makefile 问题,望大侠们过来帮帮忙,小弟在线急等
  • 各位老兄帮忙了!写makefile进行编译程序时,找不到iostream map vector
  • 只有一行代码的Makefile文件,在执行make命令时出错。请帮忙看看 ,谢谢
  • 帮忙看看makefile 中关于变量的条件赋值 的问题吧?不搞定我下周就死了
  • 一段makefile出错,请各位帮忙看看问题出在哪!
  • Makefile移植问题!请大家帮忙看看!
  • 【帮忙测试】——我的一个自动生成Makefile文件
  • 帮忙看一下这段makefile的含义。(ar ranlib)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 努力努力再努力,帮忙帮忙来帮忙!
  • 在servlet中有一个关于单引号输出的问题,请大家帮忙,帮忙,帮帮忙!!
  • 小问题,你一定能够帮忙!——菜鸟请求帮忙!!
  • 帮忙帮忙如何设置变量pathclass
  • 没人帮忙吗?我想用JAVA编一个像WINDOW中的画图软件,现在出现了如下问题,请各位老哥老姐帮帮忙
  • 帮帮忙!SCO OpenServer 5.0.5 的root用户口令丢了,怎么找回来啊,帮帮忙!!!!!!
  • 我用smartupload组件遇到问题了,请帮忙!!
  • webmail问题,请高手帮忙!!!谁会使用IMP 3.0????!!!
  • 脚本问题,帮忙
  • 高手帮忙解释
  • 求教求教,shell问题...各位大哥,帮忙下
  • 关于程序移植,请知道的帮忙,分会加的
  • DELL服务器,安装RedHat EAS3.0,装完了,连不上SSH。。。。。哪位大虾帮忙!!急啊 !!!!
  • 关于聊天室的若干疑问!!!请各位大虾帮忙!
  • 有个问题?请帮忙!
  • 请求各位帮忙,关于绘制图像
  • 关于全选的问题大家帮忙看看~
  • 帮忙找个工作。
  • 请帮忙推荐几个下载java电子书的网站,35分献上!
  • 我怎么不能编译servlet?请帮忙!!!谢谢!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3