阅读更多

5顶
1踩

Web前端

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

2008-07-15 09:02 by 正式记者 huangyh 评论(19) 有8953人浏览
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文件制作的详细过程,百度云下载。

  • 编译脚本知识点记录

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

  • Contiki Makefile 阅读笔记

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

  • 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)环境变量重新赋

  • 编译第三方静态库,如果指定-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目录加入到该...

  • 工作点滴(—)在CFLAGS中添加自定义宏

    背景:linux嵌入式开发中,有时候比如网页或者后台程序中需要根据客户的需求定义不同的版本。 实现方法:可以在Makefile中的CFLAGS参数后面添加自定义宏,比如 ... ... CFLAGS +=-g -Wall -D$(OEM) ... ..

  • 在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)。..........

  • Linux下多个.c文件的编译和Makefile文件

    在编程的时候,我们可以把一个完整程序的每个函数分离出来,写成.c文件,最后再一起编译和链接。这样有利于程序功能模块化,也方便检查代码错误。 .h文件:里面编辑该程序需要引用的头文件。 #ifndef /#define / #endif : 防止该头文件被重复引用。 整体用法: #ifndef A_H //如果没有a.h文件,#define A_H。如果...

  • Makefile:依赖多个c文件的书写方式

    一般书写稍微负责的程序的时候,会有个多个C文件需要进行编译: (1)通常有个头文件,它的作用是声明函数以及数据结构等待。 (2)其次是与头文件名称相对应的C文件(一般两个文件名称一样,后缀不一样),它的作用是头文件对应函数的具体实现。 (3)主程序文件,通过main()函数调用以上两个文件的结构或者函数。 (4)最后就是Makefile文件的编写了。 我已经编译,执行通过的例程包含文件如

  • 简单的makefile文件编写

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

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

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

  • 如何编写makefile文件

    makefile文件编写入门

  • 教会你如何编写makefile文件

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

Global site tag (gtag.js) - Google Analytics