导航:首页 > 源码编译 > 多文件编译用途

多文件编译用途

发布时间:2022-02-04 13:31:33

A. C++中多文件编译问题

<no.2> 很多C++程序员还在使用而不是用更新的标准的库。
这两者都有什么不同呢?首先,5年前我们就开始反对把.h符号继续用在标准的头
文件中。继续使用过时的规则可不是个好的方法。从功能性的角度来讲,
<iostream>包含了一系列模板化的I/O类,相反地<iostream.h>只仅仅是支持字符
流。另外,输入输出流的C++标准规范接口在一些微妙的细节上都已改进,因此,
<iostream>和<iostream.h>在接口和执行上都是不同的。最后,<iostream>的各组
成都是以STL的形式声明的,然而<iostream.h>的各组成都是声明成全局型的。

因为这些实质上的不同,你不能在一个程序中混淆使用这两个库。做为一种习
惯,在新的代码中一般使用<iostream>,但如果你处理的是过去编写的代码,为了
继承可以用继续用<iostream.h>旧保持代码的一致性。

<no.4>只要秉承着先声明后定义再使用的规则,你可以变着花样的引入,不过模板类
除外,模板类中出现的所有函数成员要在一个文件中定义。详见C++PRIMER = =

B. 关于C++多文件编译

Suan AA("name", 1.0, 2.0);这里构造函数用小括号

C. 关于C语言多文件编译的问题

使用头文件

例如: 原来是一个文件 hello.c /hello.h
有函数
void test1();
void test2();
void test3();
void test4();

把函数说明和对应的函数体,放到多个文件.c和.h文件的函数是对应的.
hello.c/hello.h
void test1();
void test2();
---
part1.c/par1.h
void test3();
void test4();

D. C程序如何多文件编译,运行

新建工程,把这三个文件都添加到工程的 Source File
print()函数,由于是另一个文件定义的,要前面加个extern声明这是一个外部函数。
,点编译就行了,有的版本新建工程会生程stdafx.h,还要在开头加上#include "stdafx.h"
当然你还可以用 nmake来完成这个任务,不过这是吃力不讨好的事.

E. 多文件的编译,简单的

display 不是 dispaly

至于cannot open file "Debug/project1.exe"
我不知道你用的是不是visual studio,如果是的话貌似程序运行后如果不关掉修改后再运行就会出现这种情况。

F. 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

G. vs中编译生成的.dll文件有什么用处

要安装编译器。 否则没有办法。 VS2010 是一个平台里面附带了很多编译器,例如VC10的编译器。 如果你要生成dll,就需要编译器。 可以单独下载。 也可以用 GCC 的编译器。

H. 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)

I. 多个文件的条件编译,需要注意些什么

不能在同一个文件中包含头文件两次。一般不会犯这种错误,但是当使用包含了一个头文件的文件时有可能在不知情的情况下犯这个错误。

使用预处理器指令#ifndef来解决上面的问题。语名#ifndef hyong…..#endi表示仅当以前没有使用预处理器编译指令#define定义的名称hyong时才处理#ifndef….#endif之间的语句。#define通常创建符号常量,比如#define H 3;把常量3定义为名字H,但只使用#define就能创建名称,比如#define H;就创建了一个名称H。完整的#ifndef….#endif语句的例子如下:#ifndef HY #define HY void g(); #endif;该语句的执行顺序为:编译器首先遇到该头文件时,名称HY没有被定义,这时编译器就将查看#ifndef….#endif之间的内容,并读取到#define HY这一行。如果在同一文件中遇到包含该头文件的代码时,编译器就知道HY这个名字已经被#define定义了,从而跳过#ifndef….#endif之间的内容。注意这种方法并不能防止头文件被包含两次,而只是让他忽略除第一次包含之外的所有内容。

上面的内容节选自本人文库里的文章《C++名称空间与作用域专题》,希望对你有帮助,如果你对预处理器不了解,可以再去下载本人的另一篇文章《C++宏,预处理器,RTTI,typeid与强制类型转换专题》

J. 关于C++多文件编译的问题

是的只需要包含头文件。如果要看具体问题,需要贴图

阅读全文

与多文件编译用途相关的资料

热点内容
安卓手机的应用锁怎么解 浏览:733
linux增加路径 浏览:845
sql身份证号最后四位加密 浏览:533
xp系统表格加密 浏览:854
光遇安卓军大衣什么时候上线 浏览:838
android应用商店图标 浏览:341
java计算圆的面积 浏览:643
应用编译优化recovery 浏览:577
域控命令n 浏览:258
php导出文件 浏览:13
谷歌地图网页版无法连接服务器地址 浏览:298
菜鸟工具在线编译python 浏览:858
栅格化命令有何作用 浏览:823
为什么压缩文件不能解压 浏览:311
足球app哪个软件好 浏览:96
产品经理逼疯程序员的一天 浏览:17
修改svn服务器ip地址 浏览:584
下列关于编译说法正确的是 浏览:246
java马克思 浏览:118
在设置的应用加密为啥没有微信 浏览:307