① gcc 怎么生成.ko 模块文件
http://..com/question/81844701.html
我回答的一个相似问题
gcc -Wall adc.c -o adc.o
或者在makefile中写下:
adc.o:
gcc -Wall adc.c -o adc.o
然后make,注意adc.o:下面的空格必须用Tab键
③ 请人帮忙用linux生成个arm平台的.ko文件
Makefile
obj-m = joydev.o
make -C /lib/moles/kernel_3.0.50/build SUBDIRS= $(pwd) moles
④ 编译时内核怎么生成的ko文件
从网上找一个编译模块的makefile,放到你的模块的文件夹里面,然后修改里面的路径指定编译的内核,以及目标名称。make就可以了。
⑤ 如何用gcc编译生成动态链接库*.so文件
生成动态链接库的命令行为:
gcc -fPIC -shared -o libstr.so
当将main.c和动态链接库进行连接生成可执行文件 的命令如下:
gcc main.c -L./ -lstr -o main或者gcc -o main main.c -L./ -lstr
测试是否动态链接,如果列出libstr.so, 那么应该是连接正常了ldd main注:1)-L.:表示连接的库在当前的目录中。
⑥ 怎么设置gcc编译出来的可执行文件名字
这是因为当前目录不再PATH中。 所以执行该程序必须加上路径(绝对路径活相对路径)。 “.”在Linux(以及许多其他系统中)指的是当前目录(就是你执行pwd所看到的目录)。因此“./foo”指的是运行当前目录下的foo程序。
⑦ gcc编译后的文件如何运行
Windows系统
假如生成的可执行文件名称为prog.exe,位于D:\cpp文件夹下,那么打开命令行,运行下面两条命令
cd D:\cpp
prog.exe
注意,如果用gcc编译的时候未指定可执行文件名称,则默认为a.exe
Linux系统
假如生成的可执行文件名称为prog,位于home下的CPP文件夹,那么打开终端,运行下面两条命令
cd ~/CPP
./prog
注意,如果用gcc编译的时候未指定可执行文件名称,则默认为a.out
⑧ 编译时内核怎么生成的ko文件
不玩这个,这里提供一个思路
gcc命令其实是分成几步执行的,预处理,编译,链接。".o"才到编译这一步,如果按照生成ko文件的方式链接一下说不定能成。
另生成你所说的.o文件的源代码一定是要按".ko"的规范写的,也就是什么模块注册,模块卸载等函数是必需要有的.
想想编译ko里的makefile,里面好像是引入了一个moles目录吧!
呵呵,3楼的方法是普通的链接过程。“.ko”的链接应该不会这么简单!
望楼主细心探索
⑨ linux下用gcc编译出的可执行文件和.o的编译文件有什么区别
.o 是可重定位目标程序, 虽然打包了机器语言指令,但它还需要和其它的库(比如你用的printf())做链接,最终生成可执行目标文件,这样才可能被加载到内存中由系统执行.
你的程序里用到printf(),但你自己并没有实现它,实现在系统的库文件中,因此可链接后才能用嘛.
⑩ GCC如何编译一个汇编文件,得到可执行文件
gcc -c my.s(生成my.o)
gcc -o my my.o
my就是所要的可执行文件
或者直接可以gcc -o my my.s