阅读更多

5顶
1踩

Web前端

原创新闻 E3.Table发布, 集成了ext grid

2008-07-15 09:02 by 正式记者 huangyh 评论(19) 有8954人浏览
EXT

E3.TableE3平台下一个用于构造Table视图的组件,现在这个版本的主要功能:

1.        支持ajax 翻页,排序,将传统tale切换到ajax table不需要修改任何代码,只要

做些配置即可.

2.        支持ext grid风格的表格,美观,操作方便

3.        提供排序功能,点击列名,可以实现升序或降序排列

4.        能够对大数据进行分页显示,可以设置每页记录数

5.        支持内存数据jdbc, spring jdbc 以及hibernate分页.

6.        支持表头分组

7.        能够记录翻页、排序状态,当从列表页面跳转到编辑等页面后,再跳转回来,能够自动恢复到之前的状态.

8.        支持Collection,Map,Array,EnumIterator多种数据类型

9.        支持皮肤派生的概念,也就是说要自定义皮肤不需要从头开始,只需要选择一个已有的皮肤为基础,进行些属性定义即可.注意:用户不需要懂得css那些.

演示  http://www.javae3.com/Index.jsp

来自: www.javae3.com
5
1
评论 共 19 条 请登录后发表评论
19 楼 huangyh 2008-07-16 12:54
ext模式的不支持. ext grid没提供这功能.
18 楼 aeolus 2008-07-16 12:29
请问ext模式下支持表头分组么?
因为在example里没有看到,所以在这里问问
17 楼 JaNer 2008-07-16 10:16
学习了,支持!
16 楼 huangyh 2008-07-16 00:46
演示错误解决,用了个开源xkins 采用WeakRefrence管理内存出问题,问题已经解决,谢谢!
15 楼 sunwine 2008-07-15 22:20
感觉作的还是太简单了些
看看这个系统,www.extract.com.cn:8800
选择ET平台演示
14 楼 allen_java 2008-07-15 15:27
HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: org.apache.jasper.JasperException: net.jcreate.xkins.XkinsRuntimeException: Exception while processing content. net.jcreate.xkins.XkinsException: 合并模板 (E3001_003.tableBegin) 失败!获取模板失败: null
	net.jcreate.e3.web.DispatchServlet.service(DispatchServlet.java:77)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	net.jcreate.e3.web.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:24)
	net.jcreate.e3.web.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:58)
	org.ajaxanywhere.AAFilter.doFilter(AAFilter.java:46)
	net.jcreate.e3.table.ajax.AjaxFilter.doFilter(AjaxFilter.java:45)

root cause

org.apache.jasper.JasperException: net.jcreate.xkins.XkinsRuntimeException: Exception while processing content. net.jcreate.xkins.XkinsException: 合并模板 (E3001_003.tableBegin) 失败!获取模板失败: null
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	net.jcreate.e3.samples.table.TableServlet.showSkinTable(TableServlet.java:113)
	sun.reflect.GeneratedMethodAccessor349.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:597)
	net.jcreate.e3.web.DispatchServlet.dispatchMethod(DispatchServlet.java:105)
	net.jcreate.e3.web.DispatchServlet.service(DispatchServlet.java:74)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	net.jcreate.e3.web.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:24)
	net.jcreate.e3.web.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:58)
	org.ajaxanywhere.AAFilter.doFilter(AAFilter.java:46)
	net.jcreate.e3.table.ajax.AjaxFilter.doFilter(AjaxFilter.java:45)

root cause

net.jcreate.xkins.XkinsRuntimeException: Exception while processing content. net.jcreate.xkins.XkinsException: 合并模板 (E3001_003.tableBegin) 失败!获取模板失败: null
	net.jcreate.xkins.XkinProcessor.processContent(XkinProcessor.java:431)
	net.jcreate.xkins.XkinProcessor.processContent(XkinProcessor.java:409)
	net.jcreate.e3.table.html.SkinHTMLTableBuilder.getTemplateValue(SkinHTMLTableBuilder.java:382)
	net.jcreate.e3.table.html.SkinHTMLTableBuilder.buildHTMLTableBegin(SkinHTMLTableBuilder.java:276)
	net.jcreate.e3.table.html.AbstractHTMLTableBuilder.buildTableBegin(AbstractHTMLTableBuilder.java:119)
	net.jcreate.e3.table.support.DefaultTableDirector.build(DefaultTableDirector.java:136)
	net.jcreate.e3.table.html.tag.TableTag.doEndTag(TableTag.java:526)
	org.apache.jsp.e3.samples.table.SkinTable_jsp._jspx_meth_e3t_005ftable_005f0(SkinTable_jsp.java:210)
	org.apache.jsp.e3.samples.table.SkinTable_jsp._jspService(SkinTable_jsp.java:107)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	net.jcreate.e3.samples.table.TableServlet.showSkinTable(TableServlet.java:113)
	sun.reflect.GeneratedMethodAccessor349.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:597)
	net.jcreate.e3.web.DispatchServlet.dispatchMethod(DispatchServlet.java:105)
	net.jcreate.e3.web.DispatchServlet.service(DispatchServlet.java:74)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	net.jcreate.e3.web.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:24)
	net.jcreate.e3.web.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:58)
	org.ajaxanywhere.AAFilter.doFilter(AAFilter.java:46)
	net.jcreate.e3.table.ajax.AjaxFilter.doFilter(AjaxFilter.java:45)

root cause

net.jcreate.xkins.XkinsException: 合并模板 (E3001_003.tableBegin) 失败!获取模板失败: null
	net.jcreate.e3.table.skin.processor.VelocityTemplateProcessor.process(VelocityTemplateProcessor.java:210)
	net.jcreate.xkins.XkinProcessor.process(XkinProcessor.java:472)
	net.jcreate.xkins.XkinProcessor.processContent(XkinProcessor.java:427)
	net.jcreate.xkins.XkinProcessor.processContent(XkinProcessor.java:409)
	net.jcreate.e3.table.html.SkinHTMLTableBuilder.getTemplateValue(SkinHTMLTableBuilder.java:382)
	net.jcreate.e3.table.html.SkinHTMLTableBuilder.buildHTMLTableBegin(SkinHTMLTableBuilder.java:276)
	net.jcreate.e3.table.html.AbstractHTMLTableBuilder.buildTableBegin(AbstractHTMLTableBuilder.java:119)
	net.jcreate.e3.table.support.DefaultTableDirector.build(DefaultTableDirector.java:136)
	net.jcreate.e3.table.html.tag.TableTag.doEndTag(TableTag.java:526)
	org.apache.jsp.e3.samples.table.SkinTable_jsp._jspx_meth_e3t_005ftable_005f0(SkinTable_jsp.java:210)
	org.apache.jsp.e3.samples.table.SkinTable_jsp._jspService(SkinTable_jsp.java:107)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	net.jcreate.e3.samples.table.TableServlet.showSkinTable(TableServlet.java:113)
	sun.reflect.GeneratedMethodAccessor349.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:597)
	net.jcreate.e3.web.DispatchServlet.dispatchMethod(DispatchServlet.java:105)
	net.jcreate.e3.web.DispatchServlet.service(DispatchServlet.java:74)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	net.jcreate.e3.web.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:24)
	net.jcreate.e3.web.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:58)
	org.ajaxanywhere.AAFilter.doFilter(AAFilter.java:46)
	net.jcreate.e3.table.ajax.AjaxFilter.doFilter(AjaxFilter.java:45)

root cause

net.jcreate.xkins.XkinsException: 获取模板失败: null
	net.jcreate.e3.table.skin.processor.VelocityTemplateProcessor.getTemplate(VelocityTemplateProcessor.java:241)
	net.jcreate.e3.table.skin.processor.VelocityTemplateProcessor.process(VelocityTemplateProcessor.java:206)
	net.jcreate.xkins.XkinProcessor.process(XkinProcessor.java:472)
	net.jcreate.xkins.XkinProcessor.processContent(XkinProcessor.java:427)
	net.jcreate.xkins.XkinProcessor.processContent(XkinProcessor.java:409)
	net.jcreate.e3.table.html.SkinHTMLTableBuilder.getTemplateValue(SkinHTMLTableBuilder.java:382)
	net.jcreate.e3.table.html.SkinHTMLTableBuilder.buildHTMLTableBegin(SkinHTMLTableBuilder.java:276)
	net.jcreate.e3.table.html.AbstractHTMLTableBuilder.buildTableBegin(AbstractHTMLTableBuilder.java:119)
	net.jcreate.e3.table.support.DefaultTableDirector.build(DefaultTableDirector.java:136)
	net.jcreate.e3.table.html.tag.TableTag.doEndTag(TableTag.java:526)
	org.apache.jsp.e3.samples.table.SkinTable_jsp._jspx_meth_e3t_005ftable_005f0(SkinTable_jsp.java:210)
	org.apache.jsp.e3.samples.table.SkinTable_jsp._jspService(SkinTable_jsp.java:107)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	net.jcreate.e3.samples.table.TableServlet.showSkinTable(TableServlet.java:113)
	sun.reflect.GeneratedMethodAccessor349.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:597)
	net.jcreate.e3.web.DispatchServlet.dispatchMethod(DispatchServlet.java:105)
	net.jcreate.e3.web.DispatchServlet.service(DispatchServlet.java:74)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	net.jcreate.e3.web.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:24)
	net.jcreate.e3.web.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:58)
	org.ajaxanywhere.AAFilter.doFilter(AAFilter.java:46)
	net.jcreate.e3.table.ajax.AjaxFilter.doFilter(AjaxFilter.java:45)

root cause

java.lang.NullPointerException
	net.jcreate.xkins.processor.XkinsVelocityLoader.getXkins(XkinsVelocityLoader.java:66)
	net.jcreate.xkins.processor.XkinsVelocityLoader.isSourceModified(XkinsVelocityLoader.java:35)
	org.apache.velocity.runtime.resource.Resource.isSourceModified(Resource.java:114)
	org.apache.velocity.runtime.resource.ResourceManagerImpl.refreshResource(ResourceManagerImpl.java:510)
	org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:304)
	org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:831)
	org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:813)
	org.apache.velocity.app.VelocityEngine.getTemplate(VelocityEngine.java:470)
	net.jcreate.e3.table.skin.processor.VelocityTemplateProcessor.getTemplate(VelocityTemplateProcessor.java:238)
	net.jcreate.e3.table.skin.processor.VelocityTemplateProcessor.process(VelocityTemplateProcessor.java:206)
	net.jcreate.xkins.XkinProcessor.process(XkinProcessor.java:472)
	net.jcreate.xkins.XkinProcessor.processContent(XkinProcessor.java:427)
	net.jcreate.xkins.XkinProcessor.processContent(XkinProcessor.java:409)
	net.jcreate.e3.table.html.SkinHTMLTableBuilder.getTemplateValue(SkinHTMLTableBuilder.java:382)
	net.jcreate.e3.table.html.SkinHTMLTableBuilder.buildHTMLTableBegin(SkinHTMLTableBuilder.java:276)
	net.jcreate.e3.table.html.AbstractHTMLTableBuilder.buildTableBegin(AbstractHTMLTableBuilder.java:119)
	net.jcreate.e3.table.support.DefaultTableDirector.build(DefaultTableDirector.java:136)
	net.jcreate.e3.table.html.tag.TableTag.doEndTag(TableTag.java:526)
	org.apache.jsp.e3.samples.table.SkinTable_jsp._jspx_meth_e3t_005ftable_005f0(SkinTable_jsp.java:210)
	org.apache.jsp.e3.samples.table.SkinTable_jsp._jspService(SkinTable_jsp.java:107)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	net.jcreate.e3.samples.table.TableServlet.showSkinTable(TableServlet.java:113)
	sun.reflect.GeneratedMethodAccessor349.invoke(Unknown Source)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:597)
	net.jcreate.e3.web.DispatchServlet.dispatchMethod(DispatchServlet.java:105)
	net.jcreate.e3.web.DispatchServlet.service(DispatchServlet.java:74)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	net.jcreate.e3.web.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:24)
	net.jcreate.e3.web.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:58)
	org.ajaxanywhere.AAFilter.doFilter(AAFilter.java:46)
	net.jcreate.e3.table.ajax.AjaxFilter.doFilter(AjaxFilter.java:45)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.14 logs.
Apache Tomcat/6.0.14

我点击欣赏,怎么出现N多类似的错误?
13 楼 huangyh 2008-07-15 13:32
e3的思路是.  数据模型 + 皮肤定义 (内部有主题工厂负责皮肤转换处理)-->最后产生输出。 e3 的taglib只是提供一种手段,允许用户进行数据修饰处理(如格式化日期,熟字之类的).e3后续会退出jelly形态的tag(不依赖jsp容器,这样视图不是jsp的也可以用)。 e3的思路基本上跟你说的吻合,所以e3要换grid风格会相对容易.如果可以的话,希望e3.table跟gt-grid 以后有合作的机会,咱们则重点不一样:)
另外刚发现个商业的grid, js做的,卖的还很贵,你看看,或者有些东西还值得借鉴,看起来相当不错,http://www.treegrid.com/TreeGrid5_6/Html/EJSTreeGrid.html
12 楼 fins 2008-07-15 13:11
谢谢 我还需努力 所有国人都应该努力 其实你这个也坚持很久了 虽然我没有用过 但是每次在这里看到有网友 贡献出自己的作品 而且是以产品的形式 很正式的贡献出来时 我总是很钦佩的.

说说技术
"e3对ext的整合思路可能跟传统的整合方式会有些不一样,虽然用了ext 的外观,但是在e3程序里ext的概念很少"

我猜想你的做法是不是 就是 用标签来生成js
而不是像其他的组件那样 在java端有一套相对复杂的组件模型(一堆类)等等?
如果是这样问题也蛮多的 如果你想听我再说说我的看法.

我有个想法(只是想法,没有验证过是否可行):
ext有一个思路就是:
我不管你后台是什么框架,后台代码怎么写, 只要你按我的要求(其实也可以进行一定的自定义 但是暂且忽略)送给我一些数据, 并且我给你的数据你能理解 那么我就给你做出列表来.

你在做后台时 是不是也可以考虑一下这个思路,只是站在数据的角度.
只要你告诉我你要什么样的数据(数据的结构), 以及能给我我要的信息(分页信息等), 那么我就给你准备出数据来.

数据如何渲染 交给一个纯前台的东西来搞定.
当然 你可以实现一个默认的前台, 也可以使用其他已经存在的前台(如ext gt等)
而且 这个前台如何实现 , 是标签 还是js 你也不关心
当然 你的默认实现可以是 标签.

以上只是我的想法 也许你的E3 table就是这么设计的 那就算我多嘴了
如果我这种想法你也有过 并且实践证明行不通 也欢迎你来和我做更进一步的交流.




11 楼 huangyh 2008-07-15 13:10
fins,建议先收下了,谢了:)  改天有空研究下gt-grid
10 楼 huangyh 2008-07-15 13:01
"扬长避短 , 发扬特色与创新" 才是王道. 呵呵,没错,e3扬的就是后台,前端的东西我们不做,(自己也不会),所以整合了ext grid(以后可能会整合其他的).e3对ext的整合思路可能跟传统的整合方式会有些不一样,虽然用了ext 的外观,但是在e3程序里ext的概念很少。 都是做列表的,gt-grid要赞一下,前端东西写成这样,真不容易:)
9 楼 fins 2008-07-15 12:48
都是做列表的 特来支持一下
E3 table 跟我之前做的那个 ecside比较类似吧?

我感觉作者的强项在java , 页面部分就...

建议作者扬长避短 加强后台, 因为在后台可作的事情还是很多的 例如导出 图表 更强大的统计等.

我个人建议 实在没必要在整合EXT-GRID上花功夫
这类用java的方式来开发ext的东西 已经太多了 效果并不好.

"扬长避短 , 发扬特色与创新" 才是王道.




8 楼 wingware 2008-07-15 12:30
...
7 楼 wingware 2008-07-15 12:30
6 楼 superxielei 2008-07-15 12:24
太慢了。继续关注!
5 楼 huangyh 2008-07-15 12:21
不过以后还是要想办法,给整出来,后续版本会提供yui datatable的支持,那个小很多.功能也很强
4 楼 huangyh 2008-07-15 12:20
ext的grid之前用ext提供的工具build出来就报错了,所以就没分解出来。ext压缩下100来K,不是很大
3 楼 guoshiguan 2008-07-15 11:53
把整个EXT都包都进来了,不能轻量级点吗,

2 楼 jessdy 2008-07-15 10:15
还很稚嫩,Table这块异常多多,随便点点就是异常
1 楼 flyfan 2008-07-15 09:25
很好很强大,支持了

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Makefile文件制作

    详细讲解了关于Makefile文件制作的详细过程,百度云下载。

  • Contiki Makefile 阅读笔记

    CFLAGS += -DCONTIKI=1 -DCONTIKI_TARGET_$(TARGET_UPPERCASE)=1 在Contiki的Makefile中有这么一句 其中的意思是在Makefile执行时为编译定义一个宏 相当于 #define CONTIKI 1

  • 编译脚本知识点记录

    编译脚本知识点记录: 1.LOCAL_CFLAGS用法: LOCAL_CFLAGS += -DXXX 相当于在所有源文件中增加一个宏定义#define XXX

  • 跟我一起写Makefile.pdf 下载

    跟我一起写Makefile.pdf 下载 【下载地址】跟我一起写Makefile.pdf下载 跟我一起写Makefile.pdf 下载本仓库提供了一个名为“跟我一起写Makefile.pdf”的资源文件下载 项目地址: https...

  • CFLAGS用法

    CFLAGS 表示用于 C 编译器的选项, CXXFLAGS 表示用于 C++ 编译器的选项。 这两个变量实际上涵盖了编译和汇编两个步骤。 CFLAGS: 指定头文件(.h文件)的路径,如:CFLAGS=-I/usr/include -I/path/include。同样地,安装一个包时会在安装路径下建立一个include目录,当安装过程中出现问题时,试着把以前安装的包的include目录加入到该变量中来。 LDFLAGS :gcc 等编译器会用到的一些优化参数,也可以在里面指定库文件的位置。用法:LDFLA

  • Makefile增加CFLAGS += -O2导致多线程间数据同步异常(volatile修饰)

    问题描述 程序多线程间共享变量出现取值不同步的问题,同一个变量取出来的数据不一致 问题分析 查看最近修改记录发现,修改了Makefile,增加了编译优化项-O2,由此分析是由于编译器优化导致 解决方案 将线程共享的变量增加volatile修饰即可 例子验证 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <pthre...

  • Makefile基础教程 8

    一、实验介绍--Makefile 规则命令 本次实验将介绍make对规则命令的执行,命令执行过程中的错误处理以及命令包的使用。 1.1 实验内容 1.make对规则命令的执行 2.make的多线程执行 3.make的错误忽略选项 4.make的异常结束 命令包的使用 1.2 实验知识点 1.make使用$(SHELL)来执行规则命令,make会对$(SHELL)环境变量重新赋

  • makefile的和gcc参数

    makefile的和gcc参数 今天建个程序工程,需求了解一下makefile的和gcc参数。 首先看一下我使用了makefile $cat ../rule.mk #rule.mk version= $(shell cat $(base_dir)/VERSION | perl -pechomp) cpp= xlC cppflag = -g -q64 -D_VERSION="\"$(

  • 编译第三方静态库,如果指定-fPIC选项

    使用./configure时,加上CFLAGS=-fPIC选项即可,然后就是正常的make、make install。

  • CFLAGS、CXXFLAGS、LDFLAGS与LIBS

    CFLAGS 表示用于 C 编译器的选项, CXXFLAGS 表示用于 C++ 编译器的选项。 这两个变量实际上涵盖了编译和汇编两个步骤。 CFLAGS: 指定头文件(.h文件)的路径,如:CFLAGS=-I/usr/include -I/path/include。同样地,安装一个包时会在安装路径下建立一个include目录,当安装过程中出现问题时,试着把以前安装的包的include目录加入到该...

  • 在JNI c++中使用c11

    在上篇文章中我们使用gradle自动生成Android.mk并自动调用ndk-build编译生成JNI so库,但是cpp源文件非常简单,当我们需要用到std::thread等c11特性时,还需要对gradle脚本做些改动。cpp源文件中包含<thread>,编译报错:E:\ShareFolder\project\AndroidStudioProjects\JNIDemo\jlib\src\main

  • 从0开始教你编写Makefile文件

    编写Makefile第一步,了解什么是Makefile?每当我们写大型项目时,一般需要很多源文件,源文件会在不同的目录中的文件夹里面包含着,这样我们所有的源文件不会在一个文件中包含,用gcc-omain所有的.c文件来编译,就很麻烦了,你需要记住所有的.c文件,那么为了方便编译链接,就此诞生。在学习Makefile之前,首先介绍一下make命令,make命令是GNU的工程化编译工具,它用于编译大量互相关联的源代码,使用它可以实现项目的工程化管理,提高开发效率。.obj.o.lib.a)。..........

  • 简单的makefile文件编写

    习惯了windows下ide创建工程已经代码的编写,然后一键运行,很简单,因为很多事ide都帮我们做了,但是linux下不一样,需要手动编译,执行一条条的命令,一般工程都是由于很多文件组成的,比如c++有很多.h和.cpp文件,难道编译的话需要我们一个一个手动编译?比如这样: g++ main.cpp fun1.cpp fun2.cpp -o main 如果有几百个几千个呢?在终端敲命令岂不是累...

  • 跟我一起写 Makefile(四)

    书写规则————规则包含两个部分,一个是依赖关系,一个是生成目标的方法。在Makefile中,规则的顺序是很重要的,因为,Makefile中只应该有一个最终目标,其它的目标都是被这个目标所连带出来的,所以一定要让make知道你的最终目标是什么。一般来说,定义在Makefile中的目标可能会有很多,但是第一条规则中的目标将被确立为最终的目标。如果第一条规则中的目标有很多个,那么,第一个目标会

  • 跟我一起写 Makefile(一)

    跟我一起写 Makefile 陈皓概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自

  • 教你写Makefile(很全,含有工作经验的)

    原文 转载文 Makefile 值得一提的是,在Makefile中的命令,必须要以[Tab]键开始。       什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是...

  • 如何编写makefile文件

    makefile文件编写入门

  • 教会你如何编写makefile文件

    最近一直在学习makefile是如何编写的。 当我们写的程序文件比较少的时候,敲入gcc /g++,当你在大型工程中,在一个个编译文件的话,你可能就会很郁闷。linux有一个自带的make命令,它让你的工作省去了很大的力气,但是你要学习如何编写makefile文件。 makefile是一种特殊的文件格式,他将会帮你自动管理你的项目,很强大。 下面通过实例一步步讲解如何使用makefil...

  • CFLAGS祥解

    CFLAGS 是决定 Gentoo 系统效能与稳定的关键之一。恰当的 CFLAGS 能在效能、编译时间、与系统稳定度中取得平衡,失败的 CFLAGS 可能导致编译失败,甚至系统损毁。那么,在茫茫 CFLAGS 海中,如何才能捞到命中注定那根针呢? 此文件的 CFLAGS 针对 x86 与 x86-64 平台上的 GCC 3.4 (GNU Compiler Collections - http:

Global site tag (gtag.js) - Google Analytics