多文件编译
1. 多个cpp文件如何一起编译
将函数的声明放到头文件,函数的定义放在cpp文件,之后再主函数中,将头文件包含进来,进行联编
2. c++多文件编译问题
什么错误? 我没有详细看你的代码.
就只说一下 多文件编译:
如果有多个文件, 每个文件中写好了依赖关系,那么编译时:
1.
g++main.cpp3.cpp//默认会生成a.out(linux),在dos下默认会生成*.exe
或者 2. 先编译每个 不含main函数的文件成 .o
g++-c3.cpp//默认会生成3.o,也可以用-o指定某个名字
//如果不只一个3.cpp,每个都要先编译成*.o
//头文件不用管,在文件中#include正确就行.
g++main.cpp3.o//默认会生成a.out(linux),在dos下默认会生成*.exe
3. 如何在python中实现多文件编译
如果你要用到那个文件代码,就在主文件里写上import
举个例子
A.py
B.py
我的主模块在A里,A要调用B里的函数或者类,那么在A中写import B.py
这样编译时就会编译用到B中的部分代码。
另外说一句,我对python感觉是运行时用不到的代码,它就不编译。好像是编编译边执行的那种吧
4. gcc如何编译多文件
你这里有几处问题。
fun.h 加头文件卫士,头文件中声明全局变量要用static修饰。
#ifndefFUN_H
#defineFUN_H
staticintg=10;
voidfun();
#endif
其他文件中引用这个文件的变量,extern int g;
mian.c
#include<stdio.h>
#include"fun.h"
externintg;
voidmain()
{
printf("%d ",g++);
fun();
}
5. 如何实现linux下的C++多文件编译
要分开编译,然后链接,比如
$ g++ print.cpp -c
$ g++ test.cpp -c
$ g++ test.o print.o -o mytest
这里的-c表示只编译。因为你有两个文件,所以编译两次。编译后会生成.o的文件。
然后把这些在链接起来就可以了。-o表示输出的文件。
6. c++多文件编译
//主文件
#include<iostream>
using namespace std;
#include"C:\myC_CPP\A0201\A0201A.CPP"
void main()
{
float x=20,y=5,z;
z=add(x,y)+sub(x,y);
cout<<"z="<<z<<endl;
}
//实现文件
float add(float a,float b)
{return a+b;}
float sub(float a,float b)
{return a-b;}
已经改正可以运行了
错误很小
一个是
flost x=20,y=5,z;
改为
float x=20,y=5,z;
另外
#include"C:\myC_CPP\A0201\A0201A.CPP";
改为
#include"C:\myC_CPP\A0201\A0201A.CPP"
是没有;
另外c++头文件应该为
#include<iostream>
using namespace std;
不是
#include<iostream.h>
如上就可以运行了。
肯定如上写是好用的,我已经运行过了,这个问题本身就不难。
7. c多个文件如何编译
关于整个 C 语言中的主函数 main( ) 如何调用相关的头文件(*.h)、以及调用其它独立的模块(*.c)的方法,关键在于对于如何编写 makefile 文件的真正理解、以及真正掌握编写规则。
由于我已经有很多年没有编写过 C 语言源程序、以及编写 makefile 文件了,但是可以大概给你提供一个思路就是:
下面的文本文件假设以 my_makefile 为例,编译环境为 Linux 系统,C 语言编译器为 gcc。
但是在这里注意一点:我的 my_makefile 文件中的注释语句是否是分号进行注释,我已经不太记得了,这个需要自己再参考一下。
另外就是:对源文件(*.c)、以及生成可执行文件(my_runfile)在 my_makefile 文件中的前后次序,我也记不清了,仅供参考。
myprog1.o: myprog1.c ; myprog1.o 的生成依赖于 myprog1.c 这个源程序
gcc -c myprog1.c ; 使用 Linux 系统的 C 语言编译器对 myprog1.c 只编译、不链接
myprog2.o: myprog2.c ; myprog2.o 的生成依赖于 myprog2.c 这个源程序
gcc -c myprog2.c ;使用 Linux 系统的 C 语言编译器对 myprog2.c 只编译、不链接
my_runfile: myprog1.o myprog2.o ; 可执行文件 my_runfile 的生成依赖于 myprog1.o、myprog2.o 这两个目标文件
gcc -o my_runfile myprog1.o myprog2.o ; 使用 cc 的 -o 选项生成用户自定义的可执行文件:my_runfile,如果不指定 -o 选项,cc 编译器生成的缺省可执行文件名为:a.out
运行命令为:
$make -f my_makefile (使用 -f 选项代替缺省的 make 文件名 makefile)
8. 关于C++多文件编译的问题
是的只需要包含头文件。如果要看具体问题,需要贴图
9. c语言多文件编译改错
楼主..这个程序还是重写一下吧
数组是不能在程序里面指定大小的..必须在定义的时候就订好大小
还有你那个排序的问题太大了...
for(a=0;a<n;a++) //n个数比n-1次就行..剩下的那个肯定是最小的..还有你那个a已经是数组了..怎么还在这当整形用呢..太粗心了吧
for(b=0;b<n-a;b++)//n个数..要把最大的数沉底..比n-1 次就行...
{ if(a[c]>a[c+1])
{ temp=a[c];
a[c]=a[c+1];
a[c+1]=temp;
}
c++; //比完一趟之后应该把c置0
}
应该改成
for(i=0;i<n-1;a++)
for(b=0;b<n-i-1;b++)
{c = 0;
{ if(a[c]>a[c+1])
{ temp=a[c];
a[c]=a[c+1];
a[c+1]=temp;
}
c++;
}
}
楼主不要一次写那么多..错了也不好查..先分成几个写..
建议楼主 先自己写个排序的程序吧.. 然后再慢慢往上面加其他的吧...
10. 怎么编译多个c语言文件
1、如果,在一个c主程序中,以include形式包含了其他所有的引用文件,在编译过程中,编译器首先会将这些文件合并到一个临时文件中,然后再对这个临时文件进行编译。
2、如果,是作为一个工程,编译器会分别编译各个独立的文件(如果文件中有include按照上一步进行),然后再将编译好的初步结果用链接程序连到一起。
简单的说,每一个.c或者.cc都是一个编译单元,每一个编译单元编辑的结果是一个.o或者obj之类的中间文件,至于是否是多文件,不需要关心,但是要保证不同的编译单元之间不要有重复的符号,这就是要避免重复包含。
每一个编译单元生成的目标文件.o或者obj都会引用一些不在本目标文件中的符号,这些符号定义在别的.o或者.obj文件中, 链接器把他们联系在一起,所有的符号也就都有定义了,编译链接简单说来就是这样。