‘壹’ c语言中的编辑,编译,连接,运行分别是什么意思
1、编辑:编写代码,制作C语言的源文件。
2、编译:是由编译程序将C语言源文件转换成二进制中间文件,对文件内部的语法语义做处理,如果编译出错,无法进行后续动作。
3、链接:将编译中生成的中间文件组合成二进制可执知行文件,这一步会对文件之间的关联做检查,如果出错,将不会生成可执行文件,也就无法执行。
4、执行:运行可执行文件,这一步道是编写代码的最终目的。
(1)链接文件指定编译扩展阅读:
DOS命令通常分为三类:内部命令、外部命令和批处理命令。
1、内部命令:
其包含在命令解释程序COMMAND.COM中,一旦启动DOS,这些命令就被调入内存,只要在DOS系统提示符下输入这些命令,就可立即执行。
2、外部命令:
其以文件的形式存储在系统盘上,所带扩展名为COM和EXE。DOS启动时,它们并没有被调入内存,执行前必须从系统盘读进内存。因此输入外部命令时,要了解该命令是否在当前盘上,不然DOS无法找到它们。
3、批处理命令:
实际上是个文件,该文件包含多条命令,当用户键入批处理文件名时,DOS将顺序执行其中的各条命令。注意,批处理命令必须用“.BAT”作为扩展名。
C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单。
当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则就会显得十分重要。
网络-运行命令
网络-C语言
‘贰’ 编译时为什么要指定链接库
因为有些运行时代码,是预先存在“链接库”里的。没有这些库,程序无法运行。所以编译时需要指定。
“链接库”分动态和静态两种。静态的库,编译时就把相应的代码“嵌入”可执行文件中。这种可执行文件可以单独运行,基本不需要“运行时间库”支持。
而对于动态的库,编译时只获取必要的接口信息,而在运行时根据接口信息,找到对应的动态链接库,并装入内存。这种可执行文件的大小会小一些。但是需要“运行时间库”才能正常运行。
有问题继续交流,谢谢。
‘叁’ 嵌入式软件编译链接文件问题,segment 设置问题
最简单的办法,直接修改makefile(只限于自己玩玩;在工程里,一般作为参数传给make) ARCH ?= $(SUBARCH) CROSS_COMPILE ?= 在里面写上arm,以及编译器的前缀(若命令是arm-linux-gcc,就写ARCH=arm, CROSS_COMPILE=arm-linux-)
‘肆’ 用C语言编的程序,要生成可执行文件的时候,要编译、链接,编译是什么意思啊链接是什么意思编译和链接
编译就是把C代码转换成CPU可执行的机器指令,每个.c文件生成一个.obj文件。
链接就是把生成的(多个)
.obj
文件及用到的库文件(.lib)一起组合生成可执行文件(.exe)。
‘伍’ cygwin把源程序链接到指定的库进行编译,用什么指令
如果你意思是问怎样生成库,那查编译器相关的,看你用的什么编译器toolchain(VC? GCC?),手册都会有编译器、链接器的命令行参数说明,编译时用相关选项指定库路径即可
如果你的问题是和Cygwin的路径和环境变量有关的,打开cygwin安装目录,你会看到熟悉的目录路径,和linux类似的。
bin下面放可执行文件,usr/include里面是一些库的头文件,lib下面放那些动、静态库文件。对应扔这些目录里面也可以,或者查手册应该也能找到改Cygwin环境变量的方法,添加你的库路径就行。 cygwin里面,windows的c盘对应路径为/cygdrive/c/ d为/cygdrive/d/ 其他同理。。。
‘陆’ c语言里面的编译和链接是怎么回事
C/C++语言的完整编译过程是
一、预编译
处理#define #if #include这类#开头的语句,这些称为预编译指令。这个过程中会把.h文件和.c/.cpp文件组合成最终交给compile过程的原文件。这个原文件是不包含任何#开头的语句的。所有#define定义的宏也会被替换。
二、编译
把上面那个原文件编译成.o或者VC里是.obj文件。这个文件保存了机器码化的函数、函数的描述、全局变量的描述、乃至段的描述等等。
三、连接
把可执行程序需要的所有的编译过程产生的.o或者.obj文件组合到一起。(这里也包括.lib文件,.lib文件件本质上就是打包的.obj文件集合)。另外连接过程还会组合一些其他数据,比如资源、可执行文件头等等。
‘柒’ cmake 在Windows 命令行怎么指定编译器
CMake是一个比make更高级的编译配置工具,它可以根据不同平台、不同的编译器,生成相应的Makefile或者vcproj项目。
通过编写CMakeLists.txt,可以控制生成的Makefile,从而控制编译过程。CMake自动生成的Makefile不仅可以通过make命令构建项目生成目标文件,还支持安装(make install)、测试安装的程序是否能正确执行(make test,或者ctest)、生成当前平台的安装包(make package)、生成源码包(make package_source)、产生Dashboard显示数据并上传等高级功能,只要在CMakeLists.txt中简单配置,就可以完成很多复杂的功能,包括写测试用例。
如果有嵌套目录,子目录下可以有自己的CMakeLists.txt。
总之,CMake是一个非常强大的编译自动配置工具,支持各种平台,KDE也是用它编译的,感兴趣的可以试用一下。
准备活动:
(1)安装cmake。
下载地址:http://www.cmake.org/cmake/resources/software.html
根据自己的需要下载相应的包即可,Windows下可以下载zip压缩的绿色版本,还可以下载源代码。
Windows下CMake的使用
(2)运行cmake的方法。(GUI、命令行)
http://www.cmake.org/cmake/help/runningcmake.html
CMake使用步骤:
运行GUI的cmake界面:
cmake-2.8.1-win32-x86\bin\cmake-gui.exe
Windows下CMake的使用
执行Configure:
运行之后,生成了如下文件:
Windows下CMake的使用
生成Makefile:
执行Generate之后生成如下文件:
Windows下CMake的使用
运行make进行编译:
Windows下CMake的使用
编译完成后,在build目录生成Tutorial.exe,运行Tutorial.exe 25就可以看到运行结果:
Windows下CMake的使用
运行make install安装程序:
Windows下CMake的使用
运行make test进行测试:
Windows下CMake的使用
通过cmake tutorial学习CMake配置方法
http://www.cmake.org/cmake/help/cmake_tutorial.html
可以在源代码的Tests/Turorial目录中找到这个手册对应的代码。
Windows下CMake的使用
1、Step1。
(如果不知道如何使用cmake,以及如何使用编译产生的Turorial.exe,可先看下前面“CMake使用步骤”的说明,它以Step4为例详细介绍了使用过程,Step1的配置可能不够完全,比如无法运行make install,无法运行make test,但可以参考。)
简单的程序编译。
(1)运行GUI的cmake,指定要编译的源代码路径和二进制文件路径(会自动创建)。
Windows下CMake的使用
(2)点击Configure,配置成功后,再点击Generate。
配置需要选择合适的编译器,虽然我安装了VC2008,但没有配置成功;选择Unix Makefiles,配置成功,它自动找到了DevC++下的gcc.exe等编译器。
Windows下CMake的使用
(3)在build3目录执行make,就能够编译生成Turorial.exe了。
D:\Projects\Lab\testngpp\cmake-2.8.1\Tests\Tutorial\Step1\build3>make
Linking CXX executable Tutorial.exe
[100%] Built target Tutorial
可以运行一下Turorial.exe:
D:\Projects\Lab\testngpp\cmake-2.8.1\Tests\Tutorial\Step1\build3>Tutorial.exe
Tutorial.exe Version 1.0
Usage: Tutorial.exe number
D:\Projects\Lab\testngpp\cmake-2.8.1\Tests\Tutorial\Step1\build3>Tutorial.exe 4
The square root of 4 is 2
2、Step2
把子目录编译为库,并且链接到最终的可执行文件。
include_directories ("${PROJECT_SOURCE_DIR}/MathFunctions")
add_subdirectory (MathFunctions) # 使得子目录MathFunctions也能被编译
# add the executable
add_executable (Tutorial tutorial.cxx)
target_link_libraries (Tutorial MathFunctions)
产生makefile:
在GUI上点击Configure,之后Generate还是灰色,再次点击Configure,Generate就可以点击了。
编译:
‘捌’ 多个源文件的编译和链接
这个问题我也曾经遇到过,后来过了好久才弄懂。这个一般是把程序分在.h文件和.c文件,在.h文件中给出函数声明定义基本的数据结构,在.c文件中实现相应的.h文件中的函数。然后要使用相应的接口或函数就包含.h文件,就是#include 相应的.h 文件。在编译生成的时候编译器会根据项目的makefile 来编译生成。如果想比较清楚的了解,可以看看linux 下的make工具和makefile ,make 就是根据makefile 来编译生成项目。vc++6.0底层的过程也类似,但是被界面屏蔽了。
‘玖’ 程序的编译链接过程
stdio.h 只是一个函数声明的头文件, 实现在已经编译好的库文件中,一般情况 IDE 会自动连接标准库,不需要你管。
‘拾’ 如何用命令行编译链接c++
打开“开发人员命令提示”。
在命令提示符下,请创建源文件的目录并使其成为当前工作目录。例如,键入md c:simple并按 Enter 以创建名为 Simple 的目录,然后键入cd c:simple并按 Enter 以更改到此目录。
在命令提示符下,键入notepad并按 Enter。
在记事本中,输入下列各行。
在菜单栏上,依次选择“文件”、“保存”以打开“另存为”对话框。导航至已创建的目录。在“文件名”框中,输入源文件的名称(例如 simple.c),然后在“保存类型”下拉列表中,选择“所有文件(*.*)”。选择“保存”按钮以在工作目录中创建 C 源文件。
在命令提示符下,输入dir并按 Enter。你应该看到所创建的源文件
在命令提示符下,指定cl命令和源文件的名称(例如cl simple.c),然后按 Enter 编译此程序。cl.exe 编译器将生成一个包含已编译代码的 .obj 文件,然后运行链接器以生成具有源文件名称的可执行程序,但会具有 .exe 文件名扩展(例如 simple.exe)。