当前位置: 首页 > news >正文

沃航科技网站开发徐州网站建设费用

沃航科技网站开发,徐州网站建设费用,ie浏览器打不开建设银行网站,小说排行榜2020前十名python3实现版本PrefaceGNU Make 太麻烦#xff1f;Makefile 写起来太臃肿#xff1f;头文件依赖生成搞不定#xff1f;多核同时编译太麻烦#xff1f;Emake 帮你解决这些问题#xff1a;使用简单#xff1a;设定源文件#xff0c;设定编译参数和输出目标就行了#xf…python3实现版本PrefaceGNU Make 太麻烦Makefile 写起来太臃肿头文件依赖生成搞不定多核同时编译太麻烦Emake 帮你解决这些问题使用简单设定源文件设定编译参数和输出目标就行了emake为你打点好一切。依赖分析快速分析源代码所依赖的头文件决定是否需要重新编译。输出模式可执行、静态库(.a)、动态库(.so/.dll)。多核编译轻松实现并行编译加速项目构建。精简紧凑只有唯一的一个 emake.py 文件。交叉编译构建 iOS 项目 安卓项目等等。语言支持 C / C / ObjC / ObjC / ASM工具支持 gcc / mingw / clang运行系统 Windows / Linux / Mac OS X / FreeBSD方便的交叉编译轻松构建 Android NDK / iOS / asm.js 项目你见过最简单的构建系统比 Gnu Make / CMake 都简单很多只有两三个源代码那 makefile 随便写文件一多搞依赖都可以搞死人。emake 就是简单中的简单不但比 GNU Make 简单还要比 cmake 简单很多。Emake 是为快速开发而生的最初版本在 2009年发布多年间团队在不同操作系统下用它构建过服务端项目、客户端项目、iOS项目、安卓项目 和 Flash项目这些项目都稳健的跑在生产环境中为海量用户提供服务。多年的开发中emake 提高了各种大小项目的开发效率自身也随着时间增加不断被完善和稳定。InstallLinux / Mac OS X:wget http://skywind3000.github.io/emake/emake.pysudo python2 emake.py -i运行上面两条指令十秒内完成安装。emake 会拷贝自己到 /usr/local/bin 下面后面直接使用 emake 指令操作。Windows:下载 emake.py放到你的 mingw 根目录下(便于 emake 定位 gcc)并且添加到 PATH 环境变量同级目录新建立一个 emake.cmd 文件内容如下echo offd:\dev\python27\python.exe d:\dev\mingw\emake.py %*修改一下对应路径即可建立这个 emake.cmd 的批处理文件是为了方便每次敲 emake 就可以工作避免敲 python emake.py 一长串。Tutorial假设你有三个文件foo.c, bar.c, main.c 共同编译成名字为 main(.exe) 的可执行文件我们创建 “main.mak” 文件; 指明目标格式exe, lib, dll 三选一mode: exe; 加入源文件src: foo.csrc: bar.csrc: main.c是不是比 makefile, cmake 之类的步骤简单多了编译项目emake main.mak好了工程顺利编译成功每次任何一个文件发生变动相关对其依赖的源文件都会重新编译而无依赖的代码则不需要再次编译。增加编译选项如果需要增加编译选项的话; 指明目标格式exe, lib, dll 三选一mode: exe; 编译选项flag: -Wall, -O3, -g; 加入源文件src: foo.csrc: bar.csrc: main.c如果项目中使用了数学库 libm.a的话link: m如果还是用了 libstdc.a 的话link: m, stdc或者link: mlink: stdclink 可以直接写 .a 库的文件名link: ./lib/libmylib.a如果需要添加额外的 include 目录 和 lib 目录的话inc: /usr/local/opt/jdk/includelib: /usr/local/opt/jdk/lib还可以手动指定输出的文件名out: main手动指定临时文件夹避免临时 .o 文件污染当前目录的话int: objs这样所有的临时文件就会跑到 objs 目录下面了想要清理的话删除 objs目录即可。完整例子; 指明目标格式exe, lib, dll 三选一mode: exe; 编译选项flag: -Wall, -O3, -g; 设定链接link: m, pthread, stdc; 额外头文件路径inc: /usr/local/opt/jdk/includeinc: /usr/local/opt/jdk/include/linux; 额外库文件路径lib: /usr/local/opt/jdk/lib; 加入源文件src: foo.csrc: bar.csrc: main.cDocumentemake 的工程文件里面支持下面几种设置src用于声明项目里面的源文件格式src: file1src: file2...src: filen或者src: file1, file2, file3src: file4, file5, file6inc声明项目中的 include 文件夹相当于 gcc 的 -I 命令inc: dir1inc: dir2或者inc: dir1, dir2和 src 一样可以使用逗号分隔。lib设置库文件目录格式同上link添加需要链接的库相当于 gcc 的 -l 指令link: m, pthread, stdc或者link: mlink: pthreadlink: stdc同时支持单行和多行模式编译 C 项目别忘记链接 stdc。mode目标文件的输出格式mode: [exe|lib|dll|win]exe: 生成可执行文件lib: 生成静态链接库dll: 生成动态链接库win: windows下特有生成无 console窗口的 windows程序。out指定目标文件的文件名out: target_file_nameint指定中间临时文件目录一般设置为int: objs或者int: objs/$(target)flag指定编译参数会被直接传递给 gcc.flag: -Wall, -g, -pg诸如此类SettingsEmake 可以指定一个 ini 文件来进行配置原来是emake 手动指定配置文件名emake --inixxx.ini 如果不指明的话会首先在当前文件夹寻找 emake.ini 文件同时 Linux 下面的话还会相继在下面三个位置/etc/emake.ini/usr/local/etc/emake.ini~/.config/emake.ini进行寻找。该配置文件确定了一些编译的默认配置在该配置文件中可以更改默认编译器的可执行文件名更改默认连接器的可执行文件名设定编译条件设定默认编译的参数include / lib 等文件夹等设定编译器启动的一些环境变量设定多核编译时的 cpu 数量。预先设定一些 section工程文件可以 import 特定的 section。由上面这些设定emake 可以灵活的调用各种工具链方便的进行项目构建和交叉编译。比如我在 Windows 下面的 emake.ini 部分内容[default]flag-Wall, -I$(inihome)/../mylibslinkstdc, winmm, wsock32, opengl32, gdi32, glu32, ws2_32, user32included:/dev/local/includelibd:/dev/local/libcpu6[ffmpeg]included:/dev/local/opt/ffmpeg/includelibd:/dev/local/opt/ffmpeg/liblinkavcodec, avdevice, avfilter, avformat, avutil, postproc, swscale[qt]includeD:/Dev/Qt/sdk/4.8.3-mingw/include;D:/Dev/Qt/sdk/4.8.3-mingw/include/QtGuilibD:/Dev/Qt/sdk/4.8.3-mingw/liblinkstdc, ole32, gdi32, wsock32, opengl32, gdi32, glu32, ws2_32, uuid, oleaut32, winmm, imm32, winspool, QtCore4, QtGui4, QtGuid4[qt45]includeD:/Dev/Qt/4.5.0-mingw-static/include;D:/Dev/Qt/4.5.0-mingw-static/include/QtGuilibD:/Dev/Qt/4.5.0-mingw-static/liblinkstdc, ole32, gdi32, wsock32, opengl32, gdi32, glu32, ws2_32, uuid, oleaut32, winmm, imm32, winspool, QtCore, QtGui默认区(default)作用于每一个工程文件其中 cpu字段只能出现在默认区它规定了编译时最多使用多少个核进行编译其他区的话需要在工程里使用 import 来导入import: qt, ffmpeg那么在你的工程里上面 qt 和 ffmpeg 的相关配置就会被导入了。Cross Compilation交叉编译的话需要单独一个 ini文件来规定工具链比如我的 android交叉编译配置[default]flag-Wallhomebingccarm-linux-androideabi-gccararm-linux-androideabi-arasarm-linux-androideabi-asnameandroid,posix,armcpu4其中 home 规定了 ndk工具链 gcc环境所在的可执行路径后面同时定义了gcc, ar, as 三个必须的可执行文件名使用的时候emake --inid://android-toolchain/android-9/emake.ini xxx在 default 区中定义了很多 name 这些 name 可以用来做工程文件的条件判断比如android/flag: -mfloat-abisoftfpposix/link: pthreadwin32/link: winmm, wsock32, ws2_32不同的 ini 文件中定义的 name 不同在工程文件中会判断是否定义过某个 name 定义过的话执行后面的话如此在同一个工程文件中可以针对不同平台定义源文件设置编译参数。Rapid Development不管时 GNU Make 还是 cmake亦或时其他构建系统都需要你写一个专门的工程文件来描述该工程。对于大项目很正常但是对于中小项目特别时一些测试类项目这真的太麻烦了。Emake 可以不用工程文件而将工程配置信息嵌入到源代码的注释中#include #include #include foobar.h//! mode: exe//! src: foo.cpp, bar.cpp, utils.cppint main(void){printf(Hello, World !!\n);foo();bar();return 0;}这样在你的源文件里面增添两行以后即可使用emake main.cpp来进行编译emake 会自动提取 //! 开头的注释解析为 emake的项目描述信息上面的配置描述了该项目依赖的文件(除了 main.cpp自己外)以及项目模式为生成可执行文件。这样写起来比所有构建系统都简单很多。Credits本项目旧地址
http://www.zqtcl.cn/news/152187/

相关文章:

  • 书香校园网站建设网站排名下降了怎么办
  • 观音桥网站建设湖南省建设银行网站官网
  • 信阳网站建设找汉狮搭建网站知识
  • 企业门户网站用户类型商务信息网
  • 深圳网站设计廊坊公司深圳ui设计培训班
  • 为什么网站需要维护帮人推广注册app的平台
  • 网站开发岗位要求服务好的做培训网站
  • 宁波制作网站企业有哪些学网页设计需要什么学历
  • 网站建设公司墨子网络百度域名续费
  • 琪觅公司网站开发中文网页开发工具
  • 教育网站制作设计成都网络营销公司
  • 怎么查看一个网站页面的seo优化情况网站建站建设首选上海黔文信息科技有限公司2
  • 威海网站建设价格深圳优美网络科技有限公司
  • 做网站用什么系统建设网站投资多少
  • 凡科建站官网 网络服务抚顺 网站建设
  • 学校网站的建设方案西安企业seo外包服务公司
  • 建设租车网站深圳ww
  • 推广网络网站潜江资讯网一手机版
  • 凡科网站自己如何做毕设 做网站
  • 一起做网站逛市场百度权重查询网站
  • 专业网站优化推广网站核查怎么抽查
  • 牡丹江站salong wordpress
  • 网站建设公司做网站要多少费用有哪些外国网站国内可以登录的
  • 天津建站平台网页制作免费的素材网站
  • 建设网站需要专业哪个企业提供电子商务网站建设外包
  • 公司网站建设及维护网站建设思维
  • 那个网站可以学做西餐17做网站广州沙河
  • 品牌网站建设哪里好京东网站建设案例
  • 亚马逊海外版网站深圳市工商注册信息查询网站
  • 新乐做网站优化网站上漂亮的甘特图是怎么做的