84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
这是我看书的时候,想到的一个问题。不懂为什么某种情况下不需要编译代码也行(之前编译过,然后修改),平时自己修改了代码,都是要重新编译运行的。
ringa_lee
不需要编译指的是和修改不关联的文件。比如有以下文件:common.h、file1.h、file1.c、file2.h、file2.c。其中,file1.c中include了common.h和file1.h,file2.c中只include了file2.h。编译之后file1.c输出链接文件file1.o,file2.c输出链接文件file2.o。那么如果是修改了common.h的话file1.c和file2.c都需重新编译,但是如果只是修改了file1.h的话就只有file1.c需要重新编译。书上讲的应该是这个意思。
哦,补充一下,编译只是生成链接文件(如上面提到的.o文件),链接(link)之后才最终生成可执行文件,修改源代码都会导致重新生成可执行程序(也就是重新link),但并不是所有的链接文件都会重新生成,换句话也就是不是所有的.c文件都会被重新编译。
不编译咋运行啊
C++改了代码就要重新编译运行的。除非你改了一下又改回来编译前的代码,然后IDE还有这个识别功能,那或许不用吧!
我理解,你这里说的“不需要编译”是如果项目中引用了其他库,那么当这些库的内部实现(.c/.cpp)发生变化,但接口(.h)没有变时,该项目不需要重新编译,(但发生变化的库无论如何是需要重新编译的),只需要链接新的库就可以了。
不需要编译指的是和修改不关联的文件。
比如有以下文件:
common.h、file1.h、file1.c、file2.h、file2.c。
其中,file1.c中include了common.h和file1.h,file2.c中只include了file2.h。
编译之后file1.c输出链接文件file1.o,file2.c输出链接文件file2.o。
那么如果是修改了common.h的话file1.c和file2.c都需重新编译,但是如果只是修改了file1.h的话就只有file1.c需要重新编译。书上讲的应该是这个意思。
哦,补充一下,编译只是生成链接文件(如上面提到的.o文件),链接(link)之后才最终生成可执行文件,修改源代码都会导致重新生成可执行程序(也就是重新link),但并不是所有的链接文件都会重新生成,换句话也就是不是所有的.c文件都会被重新编译。
不编译咋运行啊
C++改了代码就要重新编译运行的。除非你改了一下又改回来编译前的代码,然后IDE还有这个识别功能,那或许不用吧!
我理解,你这里说的“不需要编译”是如果项目中引用了其他库,那么当这些库的内部实现(.c/.cpp)发生变化,但接口(.h)没有变时,该项目不需要重新编译,(但发生变化的库无论如何是需要重新编译的),只需要链接新的库就可以了。