📄 kdevelop-manual-9.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><HTML><HEAD> <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.21"> <TITLE>Kdevelop使用手册: 建立设置</TITLE> <LINK HREF="kdevelop-manual-10.html" REL=next> <LINK HREF="kdevelop-manual-8.html" REL=previous> <LINK HREF="kdevelop-manual.html#toc9" REL=contents></HEAD><BODY><A HREF="kdevelop-manual-10.html">Next</A><A HREF="kdevelop-manual-8.html">Previous</A><A HREF="kdevelop-manual.html#toc9">Contents</A><HR><H2><A NAME="Build Settings"></A> <A NAME="s9">9.</A> <A HREF="kdevelop-manual.html#toc9">建立设置</A></H2><P>项目选项对话可通过项目菜单进入,它允许你指定所有你的项目需要的参数。它们将用于Makefile.am's及configure.in 脚本(例如,版本号改变及编译器警告compilerwarnings ),因此也设置编译参数。在改变了项目选项后,你应该激活"清除make clean"或"全部重建"以使用新选项来编译你的项目。请注意,调试debugging 只有在设置了项目选项以生成调试debugging信息时才可用,可通过调试等级 (0-3)设置数量。如果你在连接器Linker标志中加入了属于未包含的库的信息,而它们都未更新,则你的程序不会正常连接,因此应该记录你的二进制连接。</P><P>为生成你的应用的发布或为发布源代码包, 你应该检查以下标准设置:<UL><LI>使编译debugging失效</LI><LI>允许优化并设置优化级别为<B>-02</B></LI><LI>设置编译器警告compiler warnings 为<B>-Wall</B></LI><LI>对每个新发布的软件, 为了版本和需求升级版本号并更新项目文件</LI></UL></P><H2><A NAME="ss9.1">9.1</A> <A HREF="kdevelop-manual.html#toc9.1">一般选项</A></H2><P>项目选项对话的第一页为你的项目设置一般选项。即项目名号码,手册中用于生成一套包含于项目的HTML 文件的sgml文件及关于作者的具体信息。简短描述区域可输入你想要包括的其他信息,如程序的目的等。</P><H2><A NAME="Compiler Options"></A> <A NAME="ss9.2">9.2</A> <A HREF="kdevelop-manual.html#toc9.2">编译器选项</A></H2><P>编译器选项compiler options 页给你的目标设置编译器标志, 调试debugging及其他。</P><H3>目标</H3><P>目标格包含了三个可设置的选项:</P><P>目标机器: 你可以在此通过在你的机器(缺省)和i386v之间作出选择来设置目标选项,如果你把你的编译器Compiler设置configured为一个运行V系统的Intel 386-兼容机器的交叉编译器,可选择此项。这一选项把-b标志设置到编译器Compiler。通常,这一项保留缺省值。</P><P>只做语法检查: 选中后, 会设置只做语法检查标志。这意味着编译器Compiler将只检查你的代码的语法正误, 但并不检查此外的其他项目。</P><P>优化: 你可以通过这个选项允许优化建立过程, 意味着设置-O标志。如果未选中, 标志将设为-O0, 这样就不会使用任何优化。如果你通过选择此选项允许优化, 你也可以在其下从1到3指定优化级别。</P><P>对于你的应用的发布版, 应允许优化并将标准设置为2。</P><H3>调试</H3><P>在目标方框的右方,你可以看见调试debugging-选区。这意味着你可以设置你的编译器Compiler以在最终二进制内包含调试信息, 这样程序员就可以跟随应用的执行,并随调试器直接看到资源代码上下文。</P><P>因此激活调试debugging 设置 -g 标志;调试debugging 标准指定包含于二进制的信息量。可选择1到3级。注意二进制的执行可以通过设置任何调试debugging选项减慢,二进制文件大小则通过调试debugging标准增大。</P><P>生成gprof的额外信息: 设置-pg标志, 这将导致编译器Compiler 包含展示你程序功能的调用图表的gprof程序的信息。</P><P>存储临时交互文件: 设置-保存-临时文件 标志。这将导致存储通常由预处理器及集成器产生的的临时文件。因此,源文件的编译将产生三个输出output文件: 一个 *.o 文件,它是编译器Compiler的最终输出output, 一个由预处理器产生的*.i 文件及一个作为集成器输出output的*.s文件。</P><P>要发布你的项目, 请使任何调试debugging可用。</P><H3>其他选项</H3><P>底部的文本条目区域旨在通过在Makefiles里设置CXXFLAGS环境variable来手动的设置任何编译器Compiler标志, 因此应该在建立过程之前设置标志并在其后对它们重启。要得到所有可用的编译器Compiler标志的完整描述请参见你的编译器Compiler文档;对于gcc 和 egcs,这可由<B>man gcc</B>来完成;<B>man g++</B>会告诉你关于用于指挥编译Compiler的c++脚本的信息。</P><H2><A NAME="Compiler Warnings"></A> <A NAME="ss9.3">9.3</A> <A HREF="kdevelop-manual.html#toc9.3">编译器警告</A></H2><P>以下将描述关于可以在项目选项对话第三页进行设置的编译器Compiler 警告选项。说明取自GCC页, egcs1.1.1.版。警告warnings本身是诊断信息,表明创建可能引起错误errors。<DL><DT><B>-Wall</B><DD><P>综合的标准的`-W'选项。</P><DT><B>-W</B><DD><P>用-W编译。这已选项设置了不时很特殊的未包含在-Wall中的选项。请阅读GCC-Info以获得更多信息。</P><DT><B>-Wtraditional</B><DD><P>警告在传统或标准ANSI C中表现不同的某种构造。</P><DT><B>-Wundef</B><DD><P>在一个未定义标识在一个`#if'指令中作出评价时警告。</P><DT><B>-Wshadow</B><DD><P>无论何时当本地变量variable隐蔽了另一个本地变量variable时警告。</P><DT><B>-Wid-clash-LEN</B><DD><P>无论何时当两个不同标识符在第一个len字符匹配时警告。这可以帮助你准备一个将由一定编译器Compilers程序编译的程序。</P><DT><B>-Wlarger-then-LEN</B><DD><P>无论何时当一个比LEN字节长的对象被定义时警告。</P><DT><B>-Wpointer-arith</B><DD><P>警告依靠一个函数类型或空的大小的任何事物。GNU C给这些类型大小赋值为1,为方便计算使用void * 空指针及函数指针。</P><DT><B>-Wbad-function-cast</B><DD><P>无论何时当一个函数调用是用于一个不匹配类型时警告。例如,当<CODE>int malloc()</CODE> 用于<CODE>anything *.</CODE>时警告。</P><DT><B>-Wcast-equal</B><DD><P>无论何时当投出一个指针以从目标类型去除一个类型限定时警告。例如,在一个const char *投向一个普通的char *时警告。</P><DT><B>-Wcast-align</B><DD><P>无论何时当投出一个指针以使目标所要求的队列增加时警告。例如,当一个char * 投向一个在整型只有在2或4个字节限定时才能访问的机器上的int *时警告。</P><DT><B>-Wwrite-strings</B><DD><P>赋予字符串常量予char[length]常量类型,这样拷贝其一的地址到一个非常量的字符*指针时会得到警告。这些警告warnings将帮助你找到一个编译时间代码,它可以尽力写入一个字符串常量,但只有当你在声明declarations 及原型中使用常量时十分仔细才可。否则,它就只是一个损害;这就是我们没有让`-Wall'请求这些警告warnings的原因。</P><DT><B>-Wconversion</B><DD><P>当一个原型引起一个不同于没有原型时发生于同一argument的类型转换时警告。这包含定点转换为浮点,反之亦然,及改变定点数范围和有无符号的转换,除了和缺省的晋级一样时。</P><DT><B>-Wsign-compare</B><DD><P>当有符号数转变为无符号数,而有符号和无符号的值的对比将产生一个不正确的结果时警告。</P><DT><B>-Waggregate-return</B><DD><P>当返回结构或联合的任何函数被定义或调用时警告。(在可以返回队列的语言中,这也会引起警告。)</P><DT><B>-Wmissing-prototypes</B><DD><P>如果一个全局函数定义却没有前面的原型声明declaration时警告。即使定义本身提纲了原型这个警告也将发出。其目的是监测头文件中未声明的全局函数。</P><DT><B>-Wmissing-declarations</B><DD><P>当全局函数没有先声明declaration就定义时警告,即使定义本身提供了原型。使用这一选项来监测头文件中未声明的全局函数。</P><DT><B>-Wredundant-decls</B><DD><P>当某种事物在同一范围内的声明了超过一次时警告,即使是在多声明declaration有效且没有改动的地方。</P><DT><B>-Wnested-externs</B><DD><P>如果一个外部声明declaration在一个函数中遇到时警告。</P><DT><B>-Winline</B><DD><P>如果一个函数不能内联,而它要么声明为内部,要么给出-fin*line-functions选项时警告。</P><DT><B>-Wold-style-cast</B><DD><P>如果一个老风格(C-风格)调用用于次序时警告。</P><DT><B>-Woverloaded-virtual</B><DD><P>(C++ only.) 在一个派生类中,虚拟函数的定义必须匹配在基本类中声明的虚拟类的签名类型。当一个派生类声明一个可能是一个定义虚拟函数的错误尝试的函数时,使用此选项来请求警告warnings;也就是说,有和一个基本类中虚拟函数同名的函数,但有一个不匹配任何基类中虚拟函数的类型签名时警告。</P><DT><B>-Wsynth</B><DD><P>当g++综合行为不匹配c前端时警告。</P><DT><B>make all warnings into errors</B><DD><P>(-Werror) 把警告warnings看作错误
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -