A. 请问vc++6.0环境下怎么实现多文件c程序的编译和连接
一般是这样,每个文件要配一个头文件,把函数和变量的声明放在头文件。然后在源文件里包含头文件。在主函数文件里包含所有头文件
B. 如何用在windows的cmd编译多个c源文件
命令行编译
linux系统下:g++ prog1.cc -0 prog1,echo $?查看返回值结果。
windows系统下:cl –GX prog1.cpp,自动产生与源文件同名的exe文件,echo %errorlevel%查看返回值结果。
多个源文件编译:
linux系统下:gcc –c prog1.cc //output prog1.o object file
gcc –c prog2.cc //output prog2.o object file
gcc prog1.o prog2.o //generate executable file prog1.exe or prog1.out
//above is complied step by step, now we can also compile once
gcc –c –g prog1.cc prog2.cc –o prog1.exe
windows系统:与linux系统整体过程类似,只是命令不同罢了
cl –c prog1.c //output prog1.obj object file
cl –c prog2.c //output prog2.obj object file
gcc prog1.obj prog2.obj //generate executable file prog1.exe or prog1.out
//above is complied step by step, now we can also compile once
cl –GX prog1.c prog2.c
cl 不是内部或外部命令 解决办法:确保已经安装vs,在控制台中键入set查看环境变量,看是否有类似VS??COMNTOOLS的环境变量,若没有则在系统环境变量中新建一个环境变量VS??COMNTOOLS,变量值为vs安装目录\commom7\tools\。然后在控制台中键入
call “%VS??COMNTOOLS%”vsvars32.bat设置cl运行时的环境变量。
C. vscode C语言如何编译多个源文件
你可以写一个类似的任务在task里:在args一行,写你需要编译的文件
{
"label": "build my project",
"type": "shell",
"command": "C:\\MinGW\\bin\\g++.exe",
"args": ["main.cpp", "test.cpp", "-o", "test.exe"],
"group": "build",
},
你还可以写一个make任务,对于文件多的,手写不现实,可以做一个makefile
这样你只要在launch里面
preLaunchTask,写上这个build my project,就可以了。
D. keil如何打开多个点c并完整编译
点击全局编译按钮
,完成后在相应目录文件夹(之前存放hex文件的路径)下即可看到生成的ethernet.lib文件。知锋
6、lib文件生成后,还需.h文件,h文件有两种方式,一种是保留之前.c文件对应的.h文件,继续照常使用,另一种是可将单独的.h文件合并成一个新的ethernet.h,直接在main.c调用ethernet.h即可。
7、将lib文件剪切放到Ethernet文件路径下,将之前的socket.c、w5500.c等文件删除掉,头文件换成ethernet.h,工程里将ethernet.lib加拦辩入到group(ethernet文件夹)里。
8、将取消编译的文件重新打开,将编译后文件类型改回.hex文件,然后全编译,没有错误即完成。
另外,若想将一个.c文件生成一个lib文件,只需保留该.c文件进行编译,.h文件也保持不变,将工程中原先的.c文件替换成.lib文件即可。
用心写好每篇文章,分享给需要的你☺,如果对您有用希望能留下您的脚印(点赞/评论/收藏)!
stm32
c语言
keil mdk
嵌入式
注意!注意!你有一个手机待领取
巨摩互动
广告
Keil对lib封装库反汇编成C语言.pdf
502下载·22评论
2013年5月6日
把c++的exe工程编译为动态库dll静态库lib,并实现调用(超详细)
2087阅读·0评论·1点赞
2020年8月28日
源代码封装成库Lib的方法
504阅读·0评论·0点赞
2022年10月14日
STM32/keil把多个c文件编译为简猛缺静态库lib
2190阅读·0评论·6点赞
2021年1月5日
C/C++ 静态库(lib)的概念和使用方法
3432阅读·0评论·4点赞
2022年5月2日
Keil 下生成LIB库文件以及如何使用LIB库文件
732阅读·1评论·0点赞
2020年12月19日
注意!注意!你有一个手机待领取
巨摩互动
广告
C语言 之 编译自己的lib库
1457阅读·0评论·1点赞
2020年8月7日
CMake交叉编译简单教程
3.2W阅读·2评论·14点赞
2018年9月7日
如何将c语言封装成dll文件,封装动态库dll与静态库lib(原理及简单实例)
2069阅读·0评论·1点赞
2021年5月21日
keil C对lib封装库反汇编成C语言,Keil软件“C语言”及“汇编”混编 —— 相关知识整理.doc...
1587阅读·0评论·0点赞
2021年5月21日
keil 加密:编译代码成lib库
454阅读·0评论·0点赞
2022年7月28日
Keil C 里面Lib库文件的生成与调用
11下载·0评论
2020年8月4日
keil C对lib封装库反汇编成C语言
101下载·4评论
2011年4月8日
C语言编译lib库手动添加
1888阅读·0评论·0点赞
2017年6月18日
基于Keil下多文件打包生成Lib库文件的具体操作
2667阅读·3评论·2点赞
2020年1月18日
Windows DOS命令行编译C/C++程序----库文件.lib的链接
1752阅读·0评论·0点赞
2019年2月21日
keil把源代码生成lib的方法
2754阅读·0评论·6点赞
2022年1月25日
keil 编译生成 .lib文件
2244阅读·4评论·1点赞
2018年1月8日
keil多文件编译
724阅读·0评论·1点赞
2022年4月3日
在keil中将文件封装为lib库文件需要注意的地方
1395阅读·0评论·0点赞
2021年11月15日
去首页
看看更多热门内容
评论1
YJer
赞
你好,第6点中提到的,将单独的.h文件合并成一个新的ethernet.h,
E. 如何在VS2010中编译多个C语言源文件
要知道,一个系统生成的程序文件夹里,只可能有一个源程序,打开两个必然会冲突啊。
你可以打开两个VS来进行对两个源程序的编译。
F. 如何编译C文件
编译C文件用GCC。
编译C文件常用方法:
单个文件:
g++
file.cpp
这是最简单形式,缺省输出为a.out,可以用-o命令指定输出文件,比如g++
file.cpp
f.out
多个文件:
g++
-c
1.cpp
-o
1.o
g++
-c
2.cpp
-o
2.o
g++
1.o
2.o
-o
prog.out
链接成可执行文件:
一般用g++
-o
file
file.cpp
多个文件是g++
-o
file
file1.cpp
file2.cpp
...
编译C++不是用GCC而是G++.
如果用GCC能编译但不能链接.
多个文件:
1.编译多个文件,但不连接:
g++
file1.cpp
file2.cpp
会生成两个文件:file1.o,
file2.o
2.连接:
g++
-o
outFileName
file1.o
file2.o
会生成一个可执行文件:outFileName。
如果想,一步就完成编译和连接,那么:
g++
-o
outFileName
file1.cpp
file2.cpp
-o选项控制是否连接。
G. c ++里面有多个源文件怎么编译
1。点击“文件”菜单按钮,选择“新建”;
2。在“工程”选项中选择“Win32 Console Application”,然后输入工程名称;
3。不急着按确定,选旁边的“文件”的选项卡,然后选“C++Source File”,输入文件名(以.c结束例如: sort.c)按确定;
4。在后缀为.c的文本编辑框内输入源代码;
5。在文本编辑框右上有一些六个小图标,compile(鼠标久放这些图标上都会出现这些图标的名字),build,go等,从最左边一个图标(compile)按起,弹出对话框都按确定,一个图标OK就按下一个,最后一个是go吧,不是很记得了,可是ok都会出现DOS的对话框。
ok就这样了~多的我也不会~有些是分头文件(Header File)和源文件(Source File),那在第二步的时候就要注意是选“C++Source File”还是“C++Header File”了!
当然也可以直接选“C++Source File”或“C++Header File”了! 要注意CPP是C++文件的后辍 .C是C语言的后辍
H. keil 怎么同时编译多个C文件
要想把多个C程序同时编译
1.主函数里要有对其他C程序里的所有函数的声明。(也可以用.h文件来声明并在主函数里include "*.h" *代表h文件文件名)
2.在keil工程里要添加所有.c文件
I. C 语言中多文件编译的问题
第一个问题
请问,我是不是该这样做:
在main.c中#include <tou.h>
在fun.c中同样#include <tou.h>(好像是必需的,请详细解释)
这是必需的。因为编译器只是把包含文件的代码复制过来,既然你二个文件中都用到头文件的内容,那当然要包含头文件,否则就会出错。
我的观点,如果这两步都是必需的 那么当有很多个比如10个.c程序每个里头都要#include <tou.h> 那么文件是不是会特别大,当有100个.c程序都要包含一下的话,那么不是非常重复么?) 那当然是会重复的。不过这个对程序的运行效率没任何影响,只是在编译过程中对文件的分析时间会稍长些,这也是没有办法的事,全看代码编写者如何组织结构了。
第二个问题:
会的。解决的方法就是在可能被多次包含的头文件中开头加上#pragma once,那样就可以保证此头文件代码只被执行一次,而不会造成头文件中函数多次重复定义至于引起这种情况的情况。当然你也可以自己用#ifdef等预编译处理来解决。你问的问题不就是这种情况么?main.c和fun.c中都包含头文件tou.h
第三个问题:
当我在main.c中这样
#define unchar unsigned char
那么当我在fun.c中还需要重新创建替换宏unchar吗 可以不在创建而直接使用吗?
答案是需重新创建,不能直接使用。但你可以把一些在多个文件中使用的宏、全局变量等统一定义到一个头文件中,那这样就可以避免多次定义了。