导航:首页 > 源码编译 > 编译开关

编译开关

发布时间:2022-01-30 05:46:01

编译开关{$IFDEF VCL}、{$IFNDEF DELPHI7} 中的vcl和delphi7在那里定义的啊!!

编译开关的定义可以在pas文件中用{$DEFINE VCL},
也可以在工程选项,Directories/Conditionals->Conditionals中添加.

❷ 有没有delphi编译开关的资料

有一个三件本的材料,石油工业出版社的,borland的中文delphi手册,个中讲object pascal那本的最后有具体的解释。 查看更多答案>>

❸ 请问noip 的“编译命令(不包含任何优化开关)”是什么意思,望解答

意思就是
Pascal:fpc %s.pas
G++:g++ %s.cpp -o %s.exe
GCC:gcc %s.c -o %s.exe
无视Pascal文件里的开关

有的人编译时喜欢开-o -o2 -o3,速度快点,但是noip不允许这个
而且-o2可以影响程序行为

❹ Pascal编译开关。语法及作用。

网上查找保存的资料。供参考:

1)数据对齐(AlignData)
{$A+}或{$A-}
在{$A+}状态下,将非字符按偶地址对齐存放,可以提高8086和80286存取数据的速度。不影响字节变量、记录域结构和数组元素。在{$A-}状态下,将使用字节对齐方式,数据可存放在奇地址或偶地址。


2)布尔运算(BooleanEvaluation)
{$B+}或{$B-}
在{$B+}状态下,编译器产生完全布尔表达式运算代码。布尔表达式中的每个操作都确保被计算。既是整个表达式的结果以确定,还继续运算其余的表达式。
在{$B-}状态下,编译器产生短路布尔表达式运算代码。接着从左到右运算,当整个表达式结果确定后,就停止运算。


3)调试信息(DebugInformation)
{$D+}或{$D-}
{$D+}产生调试信息,它在编译程序或单元产生运行错误时,能自动定位引起错误的语句。


4)浮点仿真(Emulation)
{$E+}或{$E-}
{$E+}只是在8087协处理器不存在时,将连接运行库以便对协处理器进行仿真。
{$N+,$E+}状态编译程序,系统将同8087仿真器连接,得到exe文件,不管有无8087,都可以在机器上进行IEEE标准754的二进制浮点运算。
{$N+,$E-}状态下,只能在有8087时,才能进行IEEE标准754的二进制浮点运算。
8087仿真开关如果用在一个单元是无效的,它只能用于程序的编译。


5)输入输出检查(Input/OutputChecking)
{$I+}或{$I-}
$I指示控制是否自动产生对调用过程的结果进行检查。


6)数字处理(NumbericProcessing)
{$N+}或{$N-}
{$N-}状态,在机器上只能进行实数类型运算。在{$N+}状态,在有8087协处理器或没有用{$E+}指示对8087进行仿真,都可以对IEEE浮点类型进行运算。


7)范围检查(RangeChecking)
{$R+}或{$R-}
$R+进行边界和范围检查


8)栈溢出检查(StackOverflowChecking)
{$S+}或{$S-}
在{$S+}状态下编译,程序在每个过程或函数的开始生成一段代码,用于检查是否有足够的栈空间供局部变量使用。若栈空间不够,程序停止运行,并显示运行错误。
在{$S+}状态下这样调用会导致系统崩溃。


9)变量串检查(VarStringChecking)
{$V+}或{$V-}
在{$V+}状态下,实行严格的类型检查,要求形参、实参具有同一字符串类型。
在{$V+}状态下,允许任意类型的字符串变量作为实参,甚至是一实参的最大长度不同于形参长度。
//以上内容照抄自网络,下面是原创的


10)复制文件中的内容(IncludeFile)
{$I}
格式:{$Iabc.inc}
作用就相当于abc.inc中所有的东西抄到这个位置。


12)隐藏控制台(GUIapplication)
{$APPTYPEGUI}
就是这样,在程序的开头加上,可以隐藏控制台。


13)扩大栈容量
{$M100000000,0,MaxLongint}
在使用上面的指令后,可以使用AnsiString类型。
{$M$4000,0,0}
在使用上面的命令后,再使用DOS单元。否则可能出现错误。


14)定义符号(Defineasymbol)
格式:{$define标示符}
对下面这些指令有用:


15)如果定义XXX,那么……(ifdefineXXX...)
格式:{$ifdef符号标示符}
语句;
{$endif}
如果用$define定义了,那么就会执行下面到$endif的语句。


16)ifdef的另一种用法(else...)
格式:{$ifdef符号标示符}
语句1;
{$else}
语句2;
{$endif}
若果定义了XXX就执行语句1,否则执行语句2。


17)取消定义
格式:{$undef标示符}
取消定义某个标示符,和$define搭配使用。

//以上是我自己研究或者总结的,下面是帮助文件原文:
Localcompilerswitches
cmdshortlongexplanation
$A$ALIGNAlignData.
A$ASMMODESelectassemblermode.
$B$.
Sa$C$.
$
d$DEFINEDefineasymbol.
$.
$.
$ERRORGenerateerrormessage.
$FUsefarornearfunctions.
$.
Sg$GOTOSupportGotoandLabel.
$H$LONGSTRINGSUseAnsiStrings.
$HINTGeneratehintmessage.
vh$HINTSEmithints
$IFStartconditionalcompilation.
$.
$.
$.
$INFOGenerateinfomessage.
Si$INLINEEnableinlinecodesupport.
Ci$I$IOCHECKSIncludeInput/Outputchecking.
$I$INCLUDEIncludele.
$I$INCLUDEIncludecompilerinfo.
$L$LINKLinkobjectle.
$LINKLIBLinktoalibrary.
$M$TYPEINFOGenerateRun-Timetypeinformation.
Sm$MACROEnablemacrosupport.
$
$MESSAGEGenerateinfomessage.
$MMXEnableIntelMMXsupport.
$NOTEGeneratenotemessage.
vn$NOTESEmitnotes.
A$.
$P$OPENSTRINGSUseopenstrings.
$.
$.
Co$Q$OVERFLOWCHECKSUseover
owchecking.
Cr$R$RANGECHECKSUserangechecking.
$.
XX$SMARTLINKUsesmartlinking.
St$.
$STOPGeneratefatalerrormessage.
$T$.
u$UNDEFUndeneasymbol.
$V$VARSTRINGCHECKSUsestrictvar-stringchecking.
$WAITWaitforenterkeypress.
$WARNINGGeneratewarningmessage.
$WARNINGSEmitwarnings.
$X$
$APPIDSetapplicationID(PalmOS)
$APPNAMESetapplicationname(PalmOS)
$(Windowsonly)
g$D$.
$DESCRIPTIONNotsupported.
$EEnableemulationofcoprocessor.
$GGenerate80286code.
Fi$.
$L$.
Fl$.
$M$MEMORYSpecifymemorysizes.
M$.
$NEnablenumericprocessing.
$OEnableoverlaycodegeneration.
Fo$.
Ct$SUsestackchecking
Fu$.
$VERSIONSetDLLversion(Windows)
$W$.
b$Y$.

❺ acc和gcc编译动态库的区别

编译动态库时,acc使用-b开关,gcc使用-share开关,acc使用-AA开关编译标准c++代码,-mt加入多线程链接,gcc使用-pthread开关,acc使用+Markered开关编译出cpp文件所需的头文件,并以xxx.d文件形式存放,acc和gcc的共同的开关有-I加入头文件目录,-l开关加入依赖的动态库链接,-L开关加入动态库搜寻的路径,-o开关输出目标文件,-g开关加入调试信息,-w开关加入警告级别。在64位的机器上,acc使用+DD32开关编译32位程序,gcc使用-milp32编译32位程序,此外,在64位机器上,默认是编译32位的程序。

❻ VS2008里,创建一个win32 static libraryd静态库后,怎么添加一个 symbol “TETLIBRARY” 到编译开关

楼上大概意思都说了,不赘述。
要求中,如果只是添加一个预编译标识符号,这个很简单,看需要做什么,这个和_DEBUG和_RELEASE的定义一个位置,你可以在项目设置里面参考一下。
如果需要像_DEBUG这样的用法,就要注意,每个编译模式里面是否需要不一样(就像_DEBUG),这样做程序代码里面做这样的判定才可能有意义:
#ifdef TETLIBRARY
....

#else
....

#endif

❼ 如何编译程序,每按下一个开关,从0显示的到F

给五十分吧,我告诉你

❽ 用西门子PLC如何编译行程开关的

和三菱欧姆龙,以及各大PLC品牌的一样写法。

❾ c++有没有什么编译开关

没有,数组越界是语言特性。
堆栈大小这些不属于语言本身,但可以在编译参数里设置,但对于搞竞赛的没用.

❿ 什么是编译开关 pascal

在编译窗口中连按两下“ctrl+o”可以在程序头中出现所有编译开关情况,也可以自己书写。
下面是一些常见开关所代表的意思:
1)数据对齐(Align Data)
{$A+}或{$A-}
在{$A+}状态下,将非字符按偶地址对齐存放,可以提高8086和80286存取数据的速度。不影响字节变量、记录域结构和数组元素。在{$A-}状态下,将使用字节对齐方式,数据可存放在奇地址或偶地址。
2)布尔运算(Boolean Evaluation)
{$B+}或{$B-}
在{$B+}状态下,编译器产生完全布尔表达式运算代码。布尔表达式中的每个操作都确保被计算。既是整个表达式的结果以确定,还继续运算其余的表达式。
在{$B-}状态下,编译器产生短路布尔表达式运算代码。接着从左到右运算,当整个表达式结果确定后,就停止运算。

3)调试信息(Debug Information)
{$D+}或{$D-}
{$D+}产生调试信息,它在编译程序或单元产生运行错误时,能自动定位引起错误的语句。
4)浮点仿真(Emulation)
{$E+}或{$E-}
{$E+}只是在8087协处理器不存在时,将连接运行库以便对协处理器进行仿真。
{$N+,$E+}状态编译程序,系统将同8087仿真器连接,得到exe文件,不管有无8087,都可以在机器上进行IEEE标准754的二进制浮点运算。
{$N+,$E-}状态下,只能在有8087时,才能进行IEEE标准754的二进制浮点运算。
8087仿真开关如果用在一个单元是无效的,它只能用于程序的编译。

5)输入输出检查(Input/Output Checking)
{$I+}或{$I-}
$I指示控制是否自动产生对调用过程的结果进行检查。

6)数字处理(Numberic Processing)
{$N+}或{$N-}
{$N-}状态,在机器上只能进行实数类型运算。在{$N+}状态,在有8087协处理器或没有用{$E+}指示对8087进行仿真,都可以对IEEE浮点类型进行运算。
7)范围检查(Range Checking)
{$R+}或{$R-}
$R+进行边界和范围检查

8)栈溢出检查(Stack Overflow Checking)
{$S+}或{$S-}
在{$S+}状态下编译,程序在每个过程或函数的开始生成一段代码,用于检查是否有足够的栈空间供局部变量使用。若栈空间不够,程序停止运行,并显示运行错误。
在{$S+}状态下这样调用会导致系统崩溃。

9)变量串检查(Var String Checking)
{$V+}或{$V-}
在{$V+}状态下,实行严格的类型检查,要求形参、实参具有同一字符串类型。
在{$V+}状态下,允许任意类型的字符串变量作为实参,甚至是一实参的最大长度不同于形参长度。

BP7下的最佳参数是:
{$A+,B-,D-,E-,F-,G+,I-,L-,N+,O-,P+,Q-,R-,S-,T-,V-,X+,Y-}
{$M 65520,0,655360}
其中D和L与调试有关,调试时必须打开这两个参数
N+可以使程序能够使用扩展实型。一般情况下,Real速度最慢,不应该使用。
在编辑环境下按Ctrl+O+O,可以自动列出默认的编译指示,然后再自己改,这样比较快
要想知道各个参数的意义,可以察看BP7的联机帮助文档

阅读全文

与编译开关相关的资料

热点内容
无法接服务器是什么情况 浏览:210
压缩裤的尺寸如何选择 浏览:469
服务器命令如何下载文件夹下 浏览:548
交叉编译工具的安装位置 浏览:587
linux命令ping本地地址 浏览:214
方舟编译器和超级文件管理 浏览:118
81年的程序员 浏览:32
技能人才占比算法 浏览:55
s8文件夹忘记密码怎么办 浏览:918
大家的日语中级pdf 浏览:438
编译与运行什么区别 浏览:841
死或生5PS3解压 浏览:244
pdf怎么删字 浏览:54
买压缩面膜注意什么 浏览:111
新加坡玩什么服务器好 浏览:140
加密金融科技发展 浏览:565
易学java编译器 浏览:59
克隆usb加密狗 浏览:882
动态代理编译器 浏览:65
单片机io口电流放大 浏览:656