① c++代码在什么情况下,修改了代码,可以不需要编译
无论是使用集成开发环境,还是使用makefile,都会根据文件的变动时间来判断是否需要进行编译。
例如使用main.cpp编译出来main.exe文件。再次进行编译时,会判断main.cpp是否比main.exe更新。如果更新,就会触发重新编译。
正常情况下,修改代码就应当进行代码的重新编译。但是在某些情况下,由于冗余的头文件引用导致不必要的扩大了编译文件范围。建议在包含头文件时,尽量采用最小原则。不需要使用的头文件就不要包含。
② devexpress为什么要重新编译源码
本文以DevExpress 11.1.8举例 必须满足几个条件
1、 必须有DXperience相应版本的全部源代码SourceCode。把全部源代码复制到X:\Program Files\DevExpress XXX\Components\Sources目录。目标目录的默认位置是在C:\Program Files\DevExpress 20XX\Components\Sources(其中X.X为应替换相应的版本号,以下不再重复说明)。
2、 必须有一个强名称的文件。该文件可以是你自己生成的,或者是团队项目中约定的某人生成的文件。要创建此文件,必须执行下面的命令建立你自己的密钥:sn -k StrongKey.snk并且复制新生成的强命名密钥StrongKey.snk文件到Sources目录下的/ Devexpress.Key /目录。该强名称Sn.exe工具位于/Program Files/Microsoft Visual Studio 8/SDK/v2.0/Bin目录。当然如果是约定的某人生成的文件则直接将文件复制到/ Devexpress.Key /即可。PS。该文件拥有一个对应的PublicKeyToken之后也要使用。
3、 解压编译脚本。将下载的相应版本的编译脚本压缩包解压,然后将所有文件复制到DXperience安装目录的Sources子目录下。
下面开始处理
===============================================================================================
如果之前已安装过其它版本的DevExpress要执行清除程序集的步骤,如果是初次安装可以跳过这一步
运行C:\Program Files\DevExpress 2011.1\Components\Sources\clear.bat
注:执行该步骤时如果出现“程序集锁定”的提示请关闭正在运行的程序,重启IIS Admin 服务,然后在执行一次clear.bat
===============================================================================================
执行C:\Program Files\DevExpress 2011.1\Components\Sources\buildall.cmd
等待执行完毕,执行完毕后会生成两个文件
C:\Program Files\DevExpress 2011.1\Components\Sources\PublicKeyToken.txt -- 公钥文件
C:\Program Files\DevExpress 2011.1\Components\Sources\DevExpress.Key\StrongKey.snk -- 私钥文件
===============================================================================================
打开PublicKeyToken.txt,复制那一串字符如:aea63221faec5671 共16位
在命令行运行如下命令替换公钥
"%ProgramFiles%\DevExpress 2011.1\Components\Tools\DXperience\ProjectConverter-console.exe" /r /k:<换成你的公钥> "<源码解压的目录>"
在这里我的是这样
"%ProgramFiles%\DevExpress 2011.1\Components\Tools\DXperience\ProjectConverter-console.exe" /r /k:233e5082d2bfa4a0 "%ProgramFiles%\DevExpress 2011.1\Components\Sources"
至此控件部分已经从新编译完毕。但是Demo却不能运行了,若要查看Demo就使用公钥对Demo重新编译一次就可以了
编译完源文件后要
开始 → 程序 → Developer Express v2011 vol 1 → Components → Tools → ToolboxCreator
重建下IDE的工具栏
更新以前项目的公钥
经过重新编译后的DevExpess控件私钥和公钥都已经改变,如果在编译前使用过DevExpess的控件,在编译后将无法继续使用
我们可以通过DevExpress的升级工具对项目进行升级,步骤如下:
开始 -> 程序 -> Developer Express v2011 vol 1 -> Components -> Tools -> ProjectConverter
打开 Project Convert (11.1.6.0) 后可以按单个项目(Project folder)升级或多个项目同时升级(Folder list)
勾选 show advanced option(显示高级选项) 后在 Custom public key token 栏输入
C:\Program Files\DevExpress 2011.1\Components\Sources\PublicKeyToken.txt 文件中的公钥值 如:233e5082d2bfa4a0
Hint path behavior 选择 Upldate ,然后点击右下角的 Upgrade 按钮,等待程序替换公钥完毕后就可以了
③ oracle数据库开发人员说‘需要重新编译一下’是什么意思 是说要重新跑某个过程吗
重新编译,就是某个过程或者函数哪里做了修改 需要重新编译成可以执行的文件,并不是说重新跑某个过程。编译完成之后,把编译好了的过程再重新运行。
④ 什么情况下需要手动编译 Linux 内核
只要你代码或配置有改动,都要重新编译的,只是如果代码写成块模式的,不用整个代码都重新编译,编译器会自动编译改动了的代码。
⑤ 哪些情况需要重新编译存储过程
如果是在plsql developer中修改的,可以直接点那个齿轮图标,或者F8即可编译。 如果是在sqlplus中,那就敲入修改后的过程代码(create or replace procere...),最后以/结尾运行即可。
⑥ 依赖的dll更新后什么情况下需要重新编译主程序
有的网站后台代码既有aspx又有CS文件,而且更改CS文件后不需要重新编译,网站直接就改变了,是有好多这样的网站。 主要的原因是:网站编译,可以是整站编译,也可以不编译的。把所有源代码,放在相应目录,也是可以正常运行的,