不用重新编译代码
① vs2013里cocos2dx+lua如何修改代码后直接刷新看效果,而不用关掉exe重新编译;
x,结果发现一个很纠结的问题,如果我一旦修改了一个Lua文件,我必须clean之后再build,否则修改的Lua文件不会体现出来。这是一个很令纠结的结果,特别是我要进行调试的时候,在网上搜索了一圈,发现xcode原来可以提供一个build phase的功能,允许在build中间执行一些脚本,而这个时候只要将脚本文件touch一下就可以解决问题,但是比较奇
② 编译型语言和解释型语言的区别是什么
编译型语言和解释型语言的区别是翻译的时间点不同。
编译型语言:编译型语言在执行之前要先经过编译过程,编译成为一个可执行的机器语言的文件,比如exe。
因为翻译只做一遍,以后都不需要翻译,所以执行效率高。
解释型语言:解释性语言编写的程序不进行预先编译,以文本方式存储程序代码。
执行时才翻译执行程序每执行一次就要翻译一遍。
编译型语言和解释型语言的详细介绍:
对于编译型语言,开发完成以后需要将所有的源代码都转换成可执行程序,比如Windows下的.exe文件,可执行程序里面包含的就是机器码。只要我们拥有可执行程序,就可以随时运行,不用再重新编译了,也就是“一次编译,无限次运行”。
在运行的时候,我们只需要编译生成的可执行程序,不再需要源代码和编译器了,所以说编译型语言可以脱离开发环境运行。
编译型语言一般是不能跨平台的,也就是不能在不同的操作系统之间随意切换。
对于解释型语言,每次执行程序都需要一边转换一边执行,用到哪些源代码就将哪些源代码转换成机器码,用不到的不进行任何处理。
每次执行程序时可能使用不同的功能,这个时候需要转换的源代码也不一样。
因为每次执行程序都需要重新转换源代码,所以解释型语言的执行效率天生就低于编译型语言,甚至存在数量级的差距。
计算机的一些底层功能,或者关键算法,一般都使用C/C++实现,只有在应用层面(比如网站开发、批处理、小工具等)才会使用解释型语言。
③ c++语言当中的编程:#include“pch.h”。这段话是什么意思呢
将“pch.h”这个库函数里面的函数定义和实现包含到当前的C++源代码中,使得当前代码中可以直接调用库函数“pch.h”中的所有公有函数。
include是一个计算机专业术语,一指C/C++中包含头文件命令,用于将指定头文件嵌入源文件中。
include包含指令不仅仅限于.h头文件,可以包含任何编译器能识别的C/C++代码文件,包括.c、.hpp、.cpp、.hxx、.cxx等,甚至.txt、.abc等等都可以。
预处理器发现 #include 指令后,就会寻找指令后面<>中的文件名,并把这个文件的内容包含到当前文件中。被包含文件中的文本将替换源代码文件中的#include 指令, 就像你把被包含文件中的全部内容键入到源文件中的这个位置一样。
(3)不用重新编译代码扩展阅读:
C++常用 include头文件:
#include <assert.h> //设定插入点
#include <ctype.h> //字符处理
#include <errno.h> //定义错误码
#include <float.h> //浮点数处理
#include <fstream.h> //文件输入/输出
#include <iomanip.h> //参数化输入/输出
#include <iostream.h> //数据流输入/输出
#include <limits.h> //定义各种数据类型最值常量
#include <locale.h> //定义本地化函数
#include <math.h> //定义数学函数
#include <stdio.h> //定义输入/输出函数
#include <stdlib.h> //定义杂项函数及内存分配函数
#include <string.h> //字符串处理
#include <strstrea.h> //基于数组的输入/输出
#include <time.h> //定义关于时间的函数
#include <wchar.h> //宽字符处理及输入/输出
#include <wctype.h> //宽字符分类
④ python项目代码变更后一定要重新编译吗
一般的时候,你直接用py文件执行就可以了,python会自动编译一些必要的文件。
另外目前py不同的字节码是变动的,也就是说不同版本的字节码还是不兼容,做不动一次编译到处执行。
如果你现在三个文件
main.py,
a.py,
b.py
其中main是入口,而且在main中有import
a.py
和import
b.py
那么只会生成a.pyc,b.pyc,而不会生成main.pyc
出发你自己用python中的compile命令编译main.py
以上
⑤ c++代码在什么情况下,修改了代码,可以不需要编译
无论是使用集成开发环境,还是使用makefile,都会根据文件的变动时间来判断是否需要进行编译。
例如使用main.cpp编译出来main.exe文件。再次进行编译时,会判断main.cpp是否比main.exe更新。如果更新,就会触发重新编译。
正常情况下,修改代码就应当进行代码的重新编译。但是在某些情况下,由于冗余的头文件引用导致不必要的扩大了编译文件范围。建议在包含头文件时,尽量采用最小原则。不需要使用的头文件就不要包含。
⑥ debug和release两种编译方法的区别与联系
Debug 为调试版本,Release 为发布版本,从开发者和用户视角看,他们的区别如下:
一、从开发者视角,Debug和Release的区别,主要是编译器的选项不同,Debug 包含调试信息,并且不作任何优化,便于程序员调试程序。Release 往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。
Debug 版本 相关参数解释:
参数 含义
/MDd /MLd 或 /MTd 使用 Debug runtime library(调试版本的运行时刻函数库)
/Od 关闭优化开关
/D "_DEBUG" 相当于 #define _DEBUG,打开编译调试代码开关(主要针对assert函数)
/ZI
创建 Edit and continue(编辑继续)数据库,这样在调试过程中如果修改了源代码不需重新编译
GZ 可以帮助捕获内存错误
Release 版本 参数含义
/MD /ML 或 /MT 使用发布版本的运行时刻函数库
/O1 或 /O2 优化开关,使程序最小或最快
/D "NDEBUG" 关闭条件编译调试代码开关(即不编译assert函数)
/GF 合并重复的字符串,并将字符串常量放到只读内存,防止被修改
二、使用者视角,我们下载软件的时候,一般应该选择Release版。Debug一般比测试版更粗,主要提供给高级测试者反馈修改意见。