c库编译
标准库已经是编译好的程序了,一般是.obj文件组成,编译程序将库文件取出,然后连接好地址、分配内存,不会重新编译的,编译的是你写的源文件。
换句话说,像printf这样的函数已经编译好了等你调用,已经是机器码了。
② 如何编译C和C++代码写的动态库
来来来,新技能,linux下构建lib库的步骤:
1、准备库函数源文件;
my_add.c
int add(int a, int b){ printf("Here is my_add.c\n"); return a+b;}
my_sub.c
int sub(int a, int b){ printf("Here is my_sub.c \n"); return a-b;}
2、生成目标文件;
gcc -c my_add.c my_sub.c
会生成my_add.o,my_sub.o
3、对目标文件归档;
ar crv libmylib.a my_add.o my_sub.o
会生成libmylib.a
4、写头文件;
mylib.h
#ifndef _MY_LIB_H_#define _MY_LIB_H_ int add(int a, int b);int sub(int a, int b); #endif
5、测试程序;
test.c
#include "mylib.h"int main(){ printf(" MAIN:%d\n", add(12,24));}
6、编译测试程序;
gcc test.c -L. -lmylib
答案摘自:log.anycle.com/skill/219.html
③ C语言怎么编译呀
在本机上搭建IDE开发环境,在IDE中导入编译器,就可以本地编译了。
把代码在本地写好,编译过之后,运行样例没问题后,再上传的网站上,网站上是有编译器的,你选择之后会自动编译。
④ 怎样用c语言编译
C编译的整个过程很复杂,大致可以分为以下四个阶段:
预处理阶段在该阶段主要完成对源代码的预处理工作,主要包括对宏定义指令,头文件包含指令,预定义指令和特殊字符的处理,如对宏定义的替换以及文件头中所包含的文件中预定义代码的替换等,总之这步主要完成一些替换工作,输出是同源文件含义相同但内容不同的文件。
编译、优化阶段编译就是将第一阶段处理得到的文件通过词法语法分析等转换为汇编语言。优化包括对中间代码的优化,如删除公共表达式,循环优化等;和对目标代码的生成进行的优化,如如何充分利用机器的寄存器存放有关变量的值,以减少内存访问次数。
汇编阶段将汇编语言翻译成机器指令。
链接阶段链接阶段的主要工作是将有关的目标文件连接起来,即将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的目标文件成为一个能够被操作系统装入执行的统一整体。
⑤ C语言编译一个程序
简单啊 在Visual c++下编译啊 ,TC识别不了中文
#include<stdio.h>
#include<string.h>
void main()
{
char s[30];
printf("输入\"你是一只猪\"");
while(1)
{ gets(s);
if(strcmp(s,"你是一只猪")==0)
{
printf("终于承认你是猪了吧!");
return;
}
else
gets(s);
}
}
⑥ c语言中如何编译头文件啊
你这是添加头文件,而不是编译头文件
TC2.0里面没有鼠标的使用
添加必须使用#include
命令
一般把你写的头文件或文件(注意,不光是头文件可以加入)放入你的项目或工程文件夹中
然后使用
#include
“文件名.扩展名"
添加文件(注意:使用的是
"
"
而不是<
>
包含
如果你所做要添加的文件是你们公司的一个文件库里的,建议你更改TC查询路径,这样就能省去要放到同一目录下的要求。
至于如何编译
你可以查查TC的运行方式
⑦ 目前主流的C语言编译软件是什么
C语言相比其他很多新兴的、复杂的语言,语法还是简单一些,较好实现的。
所以在C语言几十年的发展中出现了各式各样的编译器,还有一些容易被误解为编译器的IDE。
这里列举几个主流的:
GCC
毫无疑问,GCC几乎是unix及linux系统中最通用的编译器套件,几乎所有的linux发行版都预装了GCC作为C语言的默认编译器。除了对C语言的支持,GCC还支持C++、Objective-C等多种语言。GCC早在1987就由Richard Stallman作为GNU计划的一部分发布。
Clang
Clang是近几年新兴的C/C++以及Objective-C的编译器,Apple是其主要投资者,其最初的开发者已加盟Apple。虽说是新兴,但其对C/C++标准的支持不亚于GCC等老牌编译器,并且外部接口和GCC完全兼容,并且因其模块化、错误提示完善等优点已经越来越受到重视。一些如FreeBSD等项目已将clang作为默认编译器。
其实Clang并不是一个完整的编译器,而是作为同一批开发者开发的另一个备受关注的虚拟机(类似于JVM)的llvm的一个前端开发,只是负责将C语言源码编译为llvm IR的中间语言,再由llvm编译为目标代码,这样做可以让其可移植性更好。
Microsoft Visual C++
作为拥有可视化集成编程系统的编译器,VC被很多使用Windows作为开发环境的初学者使用。详见网络的介绍
http://ke..com/view/2070966.htm?fromtitle=vc&fromid=7792954&type=syn#viewPageContent
⑧ C语言如何生成库文件
有一些代码,我们编程时经常用到,或者我们对某些部分很熟悉,并写出了一些可用的接口。这时,我们会考虑把这些c文件做成一个lib库,以方便自己使用,或这给别人调用。
我这里介绍下在vc++6.0下如何来制作静态库:
第一步:创建一个工程,选择Win32Static Library,输入工程名。这时就创建好了。
第二步:工程创建好了,再点击新建,这时选择文件,选择c++ source file选项,创建一个.c
文件。
在这个文件中,你可以写入你要做成库的c函数。当然,可以继续创建其他c文件,然后将要供外部使用的接口单独放到头文件中,一般而言,一个c文件对应一个头文件。
第三步:完成以上步骤后,我们就可以生成库了。事实上,我们点击编译即可,这时就可以生成.lib文件了。
一般情况下,是可以正常生成lib文件的。有头文件和lib文件就可以给别人用了。然后我们可以写一个测试函数来试试可不可以使用。
要调用生成的lib中的函数,就要引入头函数。这时,你把lib和头文件放入当前工程中,但build的时候却显示了连接错误。那是因为你没有把lib文件包含进来。加入下面这句话即可了:
#pragma comment(lib, "mylib.lib ")
Ok,自己的lib库就这样做成了。以后可以随便调用了。
⑨ C语言,文件编译
#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d %d %d",a,b,c);
printf("%d",max(a,b,c));
printf("%d",min(a,b,c));
printf("%d",sum(a,b,c));
printf("%d",CJ(a,b,c));
}
int max(a,b,c)
{
if(a>=b&&a>=c)
return a;
else if(b>=a&&b>=c)
return b;
else if(c>=a&&c>=b)
return c;
}
int min(a,b,c)
{
if(a<=b&&a<=c)
return a;
else if(b<=a&&b<=c)
return b;
else if(c<=a&&c<=b)
return c;
}
int sum(a,b,c)
{
return(a+b+c);
}
int CJ(a,b,c)
{
return(a*b*c);
}