编译链接指向的文件夹
① C语言编译连接后生成那么多文件是什么
不要把保存目录设为桌面,应该设置成一个单独的文件夹
在一开始创建的时候它会问你保存路径
一项工程有两种生成文件的方式:
一是DEBUG
这种文件可以方便调试,可以在具体行中设置断知点,运行时对程序中各种变量进行观测
二是RELEASE
这种文件只能用来运行,不能用来调试
DEBUG文件夹所占硬盘存储空间大,开发过程中一般选择生成DEBUG文件
RELEASE文件夹占道用空间小,最终开放版本给用户时选择用这种方式生成
② 用VS编译和C++源文件的时候,源文件和库文件是如何链接到源文件的具体细节
因为我是学习计算机软件专业的,故可以给你讲一下大概意思,我也不敢保证我讲得都是正确的。个人讲解仅供参考。这个是需要学习《计算机编译原理》这门课程的。而且《计算机编译原理》这门课程在软件专业中几乎是最抽象的、难于理解的。
首先关于 Visual Studio编译器(或者是别的 C/C++编译器)是如何将用户亲自编写的源程序经过若干步骤之后,最终变成计算机可执行的二进制代码程序?这里面经过了如下步骤:
(1)、词法分析/语法分析。也就是说当编译器对用户编写的源程序进行编译时,首先检查你的词法(或者是语法)是否正确,这是第一步(这里以 C 语言为例,假如将定义一个整型变量 n 的语句 int n ; 误写成了:intt n ; 属于语法错误)。如果这一步都没有通过编译器的检查的话,那么绝对不会进入第二步。继续返回编辑状态进行语法检查。这种错误是最容易检查的。
(2)、语义分析。这类错误就要比(1)困难得多。这类错误举例如下(这类错误编译器只是会给出一个警告信息,但是编译器是会放过这类错误的。故需要编程人员具有较丰富的编程经验)
void main( )
{
int num ; /* 定义一个整型变量 num */
scanf("%d", &num ) ; /* 从键盘上输入一个整数 */
if( num == 10 ) /* 在这个语句中,如果将逻辑判断等于号 ==,误写为数值等于 =(即:if( num = 10 )),那么该程序的执行结果始终输出:Correct。因为该逻辑表达式 if( 10 ) 的真值始终为 1。 */
printf( "Correct !\n" ) ; /* 实际上程序的本意是:如果输入的数值等于 10,则输出:Correct ! */
else /* 如果输入的数值不等于 10 的话,则输出:Error ! */
printf( "Error !\n" ) ;
}
(3)、在(1)和(2)的基础上进行中间代码生成(例如:在linux 系统下面生成的 *.o 文件、或者是在 WINDOWS 系统下面生成的 *.obj 文件),这类文件还不是最终的可执行文件。
在此过程中,会应用到各种符号表,以便处理用户程序中使用的各种常量、变量、以及各种函数,等等。
(4)、在前三个阶段的基础上,最终 VS 编译器再将中间代码(*.obj 文件)和其本身提供的库文件(*.LIB)进行链接,最终产生可执行程序(Linux 系统使用的编译器是:gcc,Linux 系统下面的可执行文件名可以任意,WINDOWS 系统下面的可执行文件名为:*.EXE 文件)。
到此为止,一个用户编写的源程序,经过上面若干步骤之后,最终产生了可执行程序,此时就可以在机器上的相应的操作系统上执行了。
③ 文件夹链接指向另个文件夹要怎么实现
或者有相关的文件夹管理软件能实现此功能的,,介绍一个,网址链接也行
④ linux怎么将一个文件夹链接到另一个文件夹上
ln -s bbb的文件目录 ccc的文件目录
In的功能是为某一个文件在另外一个位置建立一个同步的链接,命令最常用的参数是-s,具体用法是:
ln -s 源文件 目标文件
-s 是 symbolic的意思。
ln的链接有软链接和硬链接两种。
软链接就是ln -s ** **,只会在选定的位置上生成一个文件的镜像,不会占用磁盘空间。
硬链接ln
** **,没有参数-s,在选定的位置上生成一个和源文件大小相同的文件。
无论是软链接还是硬链接,文件都保持同步变化。软链接是可以跨分区的,但是硬链接只能在同一分区内。
(4)编译链接指向的文件夹扩展阅读:
1、目录不能建立硬链接,但可以建立软链接。
ln-s
test_chk test_chk_ln
2、正确的删除方式(删除软链接,但不删除实际数据):
rm -rf ./test_chk_ln
3、错误的删除方式:
rm -rf ./test_chk_ln/ (这样就会把原来test_chk下的内容删除)
4、用ls查看一个目录时,发现有的文件后面有一个@的符号,那就是一个用ln命令生成的文件。用ls
-l命令去查看,就可以看到显示的link的路径。
⑤ html超链接怎么指向本地文件夹里的文件
1、既然是本地文件夹,那么不是在快捷方式上设置显示方式。而是在你想进入的文件夹设置:查看--详细资料。
2、快捷方式也不需要那么复杂。
到这个文件夹下:C:Documents and
⑥ c++中, 编译链接产生的目标文件在哪个目录下
vs 一般在工程目录下的debug/release下, 如果是64位系统,根据你选择编译位数找一下x86或者x64文件夹下
自己手动通过cl 编译连接,则会在你指定的位置(默认是当前目录下)生成obj文件
⑦ 头文件如何指向定义文件
你得了解编译的大致过程
首先,编译是按源文件为单位进行的,一般就是指你的.c文件,先把所有include的头文件组合起来,预处理,然后编译成目标文件,每个.c会生成一个中间目标文件,这时已经完成了编译。注意在编译过程中可以没有main。
然后是链接,可以理解成找到main之后把只有声明没有函数体的符号链接到对应的目标文件中,也就是你说的.c编译出来的文件。一般链接时会查找当前存放临时目标文件的文件夹你自己写的.c编译后就在这里,系统环境变量指向的库文件夹,比如printf你也看不到函数体,但是照样可以用,那是因为它们被编译好放到了系统库中,链接时自然可以找到。
现在应该大致明白了吧?
=====================================================
你都没有写hello的函数体,系统当然不知道它是做什么的,编译后也没有链接目标,哪怕你把hello.c中的void hello (void);改成void hello (void){}也可以啊
=====================================================
你是如何编译的,编译hello.c了吗
=====================================================
你在vc下建一个工程project吧,然后把文件加到工程中,一起编译,一个一个编译跟你讲要说清楚也很难