首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Gentoo的编译参数

CFLAGS 是为编译C语言编写的代码所设置的环境变量, CXXFLAGS 是为编译C++代码所设置的环境变量。...-march 参数告诉编译器为指定的cpu架构做优化,只有当没有合适的 -march 参数时,才会用到 -mcpu 和 -mtune,因为后二者都不是为指定的cpu优化的,更generic一些,其中 -...-O2 是推荐的参数, -O3 并不适合 GCC4.x。 -Os 算是 -O2 的加强版,但是只用于硬盘或者cpu cache非常小的情况。...-O 参数的最高级别就是3,原文甚至给出了gcc的源码来证明,即使设成 -O9 也没有效果。 -pipe 参数会加快编译速度。...-fomit-frame-pointer 会减小编译出来的代码,但是有一定的风险,会是调试程序变得困难,特别是调试java程序。 其余参数都可以忽略不计,只要设置好上面的参数,就是最安全的。

91520
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    VS编译BOOST,bjam参数详解

    vs2008编译boost 【一、Boost库的介绍】 Boost库是一个经过千锤百炼、可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一。...【二、Boost库的编译】 【Setp1 准备工作】: (1)Boost 下载可以到官方网站下载: http://www.boost.org/ (2)安装VS2008 IDE 【Setp2 编译Boost...决定是静态还是动态链接C/C++标准库 Bjam 选项、参数说明 --build-dir= 编译的临时文件会放在builddir里(编译完就可以把它删除了) --stagedir...= 存放编译后库文件的路径,默认是stage --build-type=complete 编译所有版本,不然只会编译一小部分版本(相当于: variant=release,threading...,如输入--with-regex就只编译regex库了 --show-libraries 显示需要编译的库名称 【四、Bjam 生成文件的分析】 (1)生成 Release 版本,多线程,动态链接

    49710

    makefile 编译参数_gcc使用说明

    gcc编译源文件共有4个过程,预处理、编译、汇编、链接。...预处理: 命令:gcc -E test.c -o test.i (-o后面指定生成文件的命名) 过程:展开宏定义(#define),处理编译条件指令(#if #ifndef等),插入引用的头文件(...结果:生成.i文件,一般的文本编辑器都能打开 编译: 命令:gcc -S test.i -o test.s 过程:词法分析,语法分析,语义分析,生成相应的汇编代码 结果:生成.s文件,一般的文本编辑器都能打开...,可以分步编译,也可以使用gcc test.c -o test直接生成可执行文件。...将多个源文件编译输出时,需要一起进行gcc编译,可利用Makefile文件来实现。 分步编译如下: 最后得到main可执行文件,在cmd命令窗口下输入main+回车,即可运行main可执行文件。

    48620

    gcc 编译参数 -fno-strict-aliasing

    想到最近项目在编译时加了-O2的优化选项,故验证之,果然是-O2搞的鬼。...但是为什么加了-O2的优化选项会触发这个bug,为了解决这个问题,需要弄清楚两点: 编译时加-O2会有哪些优化选项 jce 的哪些代码会触发这个bug   gcc -O2优化开启了很多优化选项,其中有一项就是.../test_aliasing i=56781234    这段代码的目的是交换一个int类型的前两个字节和后两个字节,正常编译和加了-O2, -fno-strict-aliasing 选项,程序可以正常运行...原因是加了-O2选项,默认打开了-strict-aliasing,程序中的short *p = (short *) &i, 破坏了aliasing 规则,编译器不会认为short 型指针p 指向 整形&...在项目中应尽量避免不同类型的指针转换,使用编译优化选项时要多加重视编译告警。 参考资料 http://km.oa.com/group/578/articles/show/150732?

    5.4K270

    windows下编译boost的参数说明

    windows下命令编译boost的基本参数说明(以1.62为例): bjam install ^ --prefix=E:\caffe-static\release\boost_windows_vc140...^ link=static ^ runtime-link=shared ^ toolset=msvc-14.0 ^ address-model=64 ^ release debug 命令行参数说明...,可选项,不指定编译所有库 –with- 编译安装指定的库,可选项,不指定编译所有库 所有库列表: atomic chrono container...,可选项 -d+3 log信息显示级别,可选项 -q 参数指示出错就停止编译,可选项 -jx 并发编译线程数,提高编译速度,可选项 link=static 编译静态库 –debug-configuration...编译时显示加载的配置信息,可选项 toolset 指定编译器工具链,本文中msvc-14.0是Visual Studio 2015 address-model 指定生成的寻址模式,=32 编译32位库

    1.7K10

    一个编译参数引发的血案

    查阅众多资料后依然没有找到答案,不禁怀疑编译器有bug。此时一篇编译器bug相关文章跳入眼里:技多不压身——从一个编译器的”bug”谈起。...终于我们发现了一个强相关的参数-fstrict-aliasing。...很明显我们的代码违反了这个参数的假定条件,并且这个参数在-O2情况下是默认开启的。官方还举了个例子强调即使转换使用了联合类型,通过获取地址然后强转指针来进行的访问具有未定义的行为!...具体到我们这个例子,以下代码进行了初始化 *(int *)&_tm = 0; 而-fstrict-aliasing参数假定了我们不会进行类型的转换来使用结构体,当编译器发现代码 *(int *)&_tm...原来,因为代码不规范,编译时有好多告警,当初处理的时候添加了参数-Wno-strict-aliasing,这个参数仅仅是把警告给消除了,并没有取消这个假定条件的优化,正确的做法是使用参数-fno-strict-aliasing

    87121

    解决使用ptlib库编译realloc参数不足问题

    解决使用ptlib库导致的编译错误qlist.h(98): warning C4003: 类函数宏的调用“realloc”参数不足的问题。...编译错误 D:\Qt\Qt5.12.1\5.12.1\msvc2017\include\QtCore/qlist.h(98): warning C4003: 类函数宏的调用“realloc”参数不足D:...成员声明中的限定名称非法D:\Qt\Qt5.12.1\5.12.1\msvc2017\include\QtCore/qlist.h(577): warning C4003: 类函数宏的调用“realloc”参数不足...,编译错误又提示类函数宏的调用“realloc”参数不足的问题,就查找了一下ptlib关于realloc的接口; 找到ptlib下的 object.h头文件包含以下宏定义; /** Override of...#undef realloc(p,s) 关于编译器C2838与C3254的错误代码 C3254为"explicit override"类包含显式重写"override",但并不从包含函数声明的接口派生;

    1.2K10

    Linux系统中使用GCC CPU参数优化代码编译

    Linux系统中使用GCC CPU参数优化代码编译 使用特定的GCC参数可以使编译出的程序执行效率有较大提升。...具体如下: 1、优化原理: 在编译程序时,借助参数传递的方法,使用与系统CPU相匹配的gcc参数编译出的程序就是为系统CPU而进行特定优化过的,因而执行速度和效率都会是最好。...2、注意事项 (1) 经过大量测试发现,在RedHat, CentOS系统中通常只能通过参数传递的方法进行编译优化,当然,如果愿意并且能够修改程序的MakeFile也可以达到这一效果,只不过比较复杂,工...(2)使用参数传递方法进行编译:(以Pentium4 CPU为例) 此处以编译Apache为例说明如何使用参数传递: # tar xzvf httpd-2.0.55.tar.gz # cd httpd-...-march参数在某些CPU型号中不可用!) -pipe:使用管道(pipe)方法替代临时文件方法在编译的不同阶段之间进行通讯。

    2.4K10

    单机MySQL数据库优化推荐的编译安装参数

    MySQL 编译参数多而复杂,让新手感到很头大,如果是正式生成环境安装 MySQL,没有充足的时间去研究每一个参数代表的意义,个人建议使用余洪春前辈整理的编译参数,便捷高效!...MySQL 的线上安装建议采取编译安装的方法,这样性能上有较大提升,,源码包的编译参数会默认以 Debgu 模式生成二进制代码,而 Debug 模式给 MySQL 带来的性能损失是比较大的,所以当我们编译准备安装的产品代码时...,一定不要忘记使用“—without-debug”参数禁用 Debug 模式。...而如果把—with-mysqld-ldflags 和—with-client-ldflags 二个编译参数设置为—all-static 的话,可以告诉编译器以静态方式编译编译结果代码得到最高的性能。...使用静态编译和使用动态编译的代码相比,性能差距可能会达到 5%至 10%之多。 编译参数如下所示(适合 5.4 及之前的版本): .

    1.7K30
    领券