C语言编译产生的.OBJ文件和汇编编译产生的.OBJ文件,如何连接_百度知道

导读:


rubo C的命令行编译连接

所谓命令行编译,是指在dos下,调用Trubo C的tcc.exe程序.来完成对turbo
C源程序的编译连接工作.当选择对后缀为*.asm的汇编程序文件编译时,tcc还要调用TASM后才能对后缀为.asm的文件进行编译,这种方式适合于
c程序与汇编语言混合编程的编译连接,当c程序嵌入汇编指令时,也必须用此方法编译连接。
命令行编译的格式为:

tcc [选项1 选项2 ...]文件名1
文件名2...其中选项是指对后面给出的文件进行连接时的选择项,可选的常用选择项如下所示:每个选项前都带有"-"号,且大小写是区分的。文件名是指源
文件.c或目标文件.obj或库文件.lib当不指定只编译不连接时,tcc将完成编译和连接两个步骤,对.lib库只进行形式上的连接,标准库用户不用
进行连接。
例如:

tcc -ib:/include -lb:/lib -etest start.c body.obj
myc当执行该命令时,表示将start.c源文件和body.obj目标文件及myc.c(命令行中该文件无后缀),分别进行编译(对body.obj
文件不再编译),然后连接生成名为test的执行文件test.exe(由-test给出).
-ib:/include 表示包含文件的路径是b:/include

-ib:/lib 表示库文件的路径是b:/lib

又例如:

tcc -ms -efile -lc:/tc/lib file1 file2.obj graphics.lib

其中-ms表示选择小内存模式进行编译,它也是turbo c的缺省编译模式,将file1进行编译,然后和file2.obj
及graphics.lib进行连接.生成file.exe的可执行文件.其中graphcis.lib库的路径为c:/tc/lib,即意为在c:/
tc/lib目录下去寻找graphics.lib文件.当进行混合编程时,如果已有汇编程序s3.asm其命令行可写为
tcc ic:/tc/include -lc:/tc/lib -mm s1 s2 s3.asm mylib.lib

表示用中模式(-mm)编译源文件s1.c和s2.c,调用TASM对s3.asm进行编译,然后连接生成可执行文件s1.exe,编译时,到c:/tc/include目录中去找包含文件,到

c:/tc/lib目录中去找库文件mylib.lib.

---------------------------------------

http://topic.csdn.net/t/20010308/22/81569.html

http://www.down22.org/plus/view.php?aid=15882



比VC难用。。。





本文转自

http://zhidao.baidu.com/question/27601788.html?fr=qrl

你可能感兴趣的:(c)