- Makefile问答之 04 优化异常与警告设置
捕鲸叉
Linux使用Linux系统编程Makefilelinux
Makefile怎样指定优化选项,包括编译和链接优化,常用的选项有哪些?在Makefile中,你可以通过设置编译器和链接器的选项来指定优化选项。优化选项可以分为编译优化和链接优化,以下是如何在Makefile中指定这些选项,以及一些常用的选项。示例Makefile#编译器CC=gcc#编译选项CFLAGS=-Wall-O2#链接选项LDFLAGS=-O2#需要链接的库LDLIBS=#目标文件TAR
- 老式风格的"后缀规则"
Caiaolun
老式风格的"后缀规则"后缀规则是一个比较老式的定义隐含规则的方法。后缀规则会被模式规则逐步地取代。因为模式规则更强更清晰。为了和老版本的Makefile兼容,GNUmake同样兼容于这些东西。后缀规则有两种方式:"双后缀"和"单后缀"。双后缀规则定义了一对后缀:目标文件的后缀和依赖目标(源文件)的后缀。如".c.o"相当于"%o:%c"。单后缀规则只定义一个后缀,也就是源文件的后缀。如".c"相当
- makefile与cmake的基础使用
小辛学西嘎嘎
linux运维服务器
一、Makefile1.1、简单的Makefile下面是一个最简单的Makefile,其中第二行第四行,前面并不是空格,而是tab。all:@echo"helloall"test:@echo"hellotest"当创建好之后,进行make,当不加任何参数,默认就是第一个:>>make>>helloall在make后可以加参数,指定输出哪一个名称:>>makeall>>helloall>>maket
- android studio程序打不开,Android Studio project 文件打不开问题解决
成长中的Elva老师
androidstudio程序打不开
现象:Android项目的所有文件都打不开,搜了一圈,和此篇原因可能类似:解决:打开工程,Androidstudio右下角出现error提示:com.intellij.diagnostic.PluginException:TryingtooverridealreadyregisteredfiletypeMakefile[Plugin:name.kropp.intellij.makefile]atc
- Yolo-v3利用GPU训练make时发生错误:/usr/bin/ld: cannot find -lcuda
徐小妞66666
一.利用GPU训练Yolov3时,首先要修改MakeFile文件,修改格式如下:GPU=1(原来为0)CUDNN=1(原来为0)NVCC=/usr/local/cuda/bin/nvcc(新建,注意自己本机的地址)二.此时make产生错误/usr/bin/ld:cannotfind-lcuda1.查看MakeFile文件找到该行代码:LDFLAGS+=-L/usr/local/cuda/lib64
- CMake项目的CMackeLists.txt内容语法详解
过好每一天的女胖子
linuxWindows跨平台cmake跨平台
文章目录1、CMake构建级别2、CMakeLists.txt文件基本结构语法解析宏变量含义1、CMakeCMake(crossplatformmake)是一个跨平台的安装编译工具,可以使用简单的语句描述安装编译过程,输出安装编译过程中产生的中间文件。CMake不直接产生最终的文件,而是产生对应的构造文件,如linux下的makefile,windows下的vs的projects等CMake的编译
- Autosar MCAL从入门到精通系列讲解--总目录
常学常思
Autosar--MCAL从入门到精通嵌入式硬件mcu单片机Autosar
前言欢迎大家一起来学习Autosar,作为一个小白,在最开始的时候也是一脸茫然,不知道如何去学习,如何下手。在这里,我将记录我所有Autosar学习的过程,问题点,以及分享我的代码供大家参考。最终能让大家快速上手。Mcal:可以去官网下载一、EB1.EBtresos创建工程2.EB生成代码编译---makefile二、TricoreMcal实战系列(EB)这里的博客之前都是用S32DS来配置的,在
- 探索Makefile Tutor:构建自动化神器的技术解析与实践指南
劳泉文Luna
探索MakefileTutor:构建自动化神器的技术解析与实践指南Makefile_tutorThisprojectaimstocreateacrystalcleartutorialonacrypticlookingtopic.项目地址:https://gitcode.com/gh_mirrors/ma/Makefile_tutor在软件开发中,自动化构建是提高效率的关键一环,而Makefile便
- C++ linux下的cmake
陆地鲨鱼-彻
个人学习笔记c++开发语言
cmake是一个帮助我们构建项目的跨平台工具。让我们不需要一次次手动配置makefile,或者手动去链接库这些操作。配置(基于vscode编辑器)在项目main.cpp同级目录下,创建CMakeLists.txt文件,举例内容如下(需自己配置)://指定构建项目所需的最低cmake版本cmake_minimum_required(VERSION3.10)//指定工程的名字(随后输出的可执行文件与其
- Ubuntu22 CMake安装使用教程
小朱在敲代码
linuxc++c语言ubuntu
1.CMake简介CMake是一个跨平台的自动化构建系统工具,它被用来管理和控制软件构建过程。CMake使用一个称为CMakeLists.txt的文本文件来描述项目的构建过程。这个文件包含了项目所需的各种设置和指令,比如源文件的位置、编译选项、链接器选项等。CMake并不是一个编译器,而是一个前端工具,它可以生成不同构建系统的脚本,如UnixMakefiles、Ninjabuildfiles、MS
- Linux一周大项目:库的移植
Yao_xiiiin.
linux运维服务器
挂载--->将所需库文件夹复制到nfs文件夹中(不在终端进行)--->cp库文件到开发板/usr/libstep1step3一、解压文件解压zip文件sudounzipxxx.zip解压tar文件sudotar-xvfxxx.tar修改权限sudochmod0777xxx-R二、配置工程./config--shared--CC--host--prefix等等配置工程生成makefile三、make
- 用VCS直接仿真vivado工程
啊节奏不对
vcs仿真fpga开发risc-v嵌入式硬件
用VCS直接仿真vivado工程前言编译vcs仿真库simulation设置RunSimulation写Makefile执行脚本,运行vcs仿真前言在日常搬砖过程中,在ICdesign进行fpga原型验证时,在上fpga测试之前,往往需要对vivado工程进行仿真,而vivado工程中可能存在较多的xilinxip或者blockdesign,直接使用vivado仿真,速度难以接收。如果使用vcs进
- 嵌入式Linux使用sqlite的库源码编译及用户程序的编译
junziruyu53
sqlite数据库
本文章记录了在嵌入式设备中使用sqlite数据库的前期编译工作,工作是在虚拟机ubuntu环境中进行的。首先需要去官网下载sqlite源码,官网地址SQLiteDownloadPage,下载后在虚拟机环境解压,进入文件目录,执行如下命令,将生成Makefile文件。其中,编译器及安装目标路径等需要根据自己的情况进行修改,单纯执行./configure一般不会成功。./configureCC=arm
- Linux下基于TCP协议的简易服务器实现(C语言)
代码能跑就可以
服务器linuxtcp/ipc语言开发语言
最近在学习Linux应用层开发,学习了基于TCP的简易服务器的搭建,在这里和大家分享分享。关键词:守护进程,TCP,进程和线程,系统调用,Makefile教程:嵌入式Linux应用层开发教程_bilibili目录知识准备服务端(tcp_server)客户端(tcp_client)守护进程(daemon_test)Makefile功能介绍知识准备守护进程:是一种在后台运行的进程,我们常听到的daem
- MAKEFILE
Auv开心
学习
ifneq(,$(filter$(strip$(TARGET_BOARD_PLATFORM)),mt6761mt6768mt6771mt6779mt6785mt6762mt6765mt6739mt8168mt6885mt6873mt6853mt6877mt6833mt6893))MTKCAM_CFLAGS+=-DMTKCAM_CUSTOM_METADATA_COMMON=1elseMTKCAM_C
- 【Linux】Makefile项目管理工具(第八篇)
爱编程的小猴
Linuxlinux运维服务器
目录makefile1.0makefile2.0makefile3.0Makefile可以简单的认为是一个工程文件的编译规则,描述了整个工程的编译和链接等规则。其中包含了哪些文件需要编译,哪些文件不需要编译,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重建等等。编译整个工程需要涉及到的,在Makefile中都可以进行描述。换句话说,Makefile可以使得我们的项目工程的编译变得自动化,不
- 更新yum源解决:centos7 安装 Redis ,make编译报错,安装gcc 提示:没有可用软件包 gcc
Freedom______
LINUXrediscentos7gcc没有可用软件包repo源
全程使用的是XShell敲的命令。首先说一下遇到的问题:我的centos是虚拟机。我在物理机上下载好了redis压缩包redis-5.0.5.tar.gz,然后rz命令上传到虚拟机,解压,编译。问题出现了:编译失败[
[email protected]]#makecdsrc&&makeallmake[1]:进入目录“/softwares/redis-5.0.5/src”CCMakefile
- 重头开始嵌入式第二十一天(Linux系统编程 文件相关函数)
FLPGYH
vimlinuxc语言
目录1.getpwuid2.getpwnam3.getgrgid4.symlink在Linux和类Unix系统中,创建软链接(符号链接)的常用指令是ln-s。5.remove6.rename7.link8.truncate9.perror10.strerror11.error1.makefile2.gdbstrtok1.getpwuidgetpwuid函数是C语言标准库中的一个函数,用于通过用户I
- skywalking接入nginx
运维潇哥
skywalkingnginx运维
下载Nginx的插件GitHub-apache/skywalking-nginx-lua:TheNginxLuaagentforApacheSkyWalking~]#cdskywalking-nginx-lua-master/skywalking-nginx-lua-master]#lsCHANGES.mdexampleslibLICENSElicensesMakefilemvnwNOTICERE
- Makefile
嘻嘻嘻Mr.Huang
linux运维服务器
文件编写好以后在Linux命令行中执行一条make命令即可自动编译整个工程。1、Makefile的参数1.目标:即要生成的文件。2.依赖:即目标文件由哪些文件生成。3.命令:即通过执行命令由依赖文件生成目标文件。4.all:Makefile文件默认只生成第一个目标文件即完成编译,但是可以通过all指定所需要生成的目标文件。Makefile中,目标(Target)和依赖(Dependency)是通过
- CUDA 问题解决 —— CUDA+MPI出错:"mpi.h" No such file or directory
__Sunny__
CUDAcudac语言
在CUDA源文件里使用MPI时,编译出错Makefile文件:CUDA_INSTALL_PATH=/usr/local/cuda-8.0MPI_INSTALL_PATH=/opt/intel/compilers_and_libraries_2017.0.098/linux/mpi/intel64NVCC=$(CUDA_INSTALL_PATH)/bin/nvccMPICC=$(MPI_INSTAL
- CMake学习
益达爱喝芬达
C++c++
Cmake工具链预处理器(宏替换)->编译器->汇编器(二进制文件.obj&&.0)->链接器->变成.exe单源文件可以直接命令生成.exe解决1:源文件多时要编写makefile,但编写makefile文件很麻烦解决2:使用cmake,跨平台,可以直接生成makefile命令行直接编译源文件g++*.cpp-oapp会生成一个app.exe./app编写CMakelist.txt#======
- C 语言通用MySQL 功能增删查改功能.
在奋斗的大道
我的嵌入式成长之路mysql数据库
前提条件:Ubuntu22.04.4LTS、MSQL8数据库并且已经安装MySQL8开发库。如果没有安装,可以查考:C语言连接MySQL数据库项目要求:1、完成MySQL数据库增删改查通用功能封装2、编辑makefile文件实现项目动态更新和快速编译项目结构:common_mysql.h通用数据库基础功能#include//数据库连接MYSQL*connectDB(constchar*ip,con
- linux执行makefile文件或目录,makefile.am_makefile.in文件_linux怎么用makefile
独孤小白兔
默认的安装路径:1)标准安装路径默认安装路径为:$(prefix)=/usr/local,可以通过./configure--prefix=的方法来覆盖。其它的预定义目录还包括:bindir=$(prefix)/bin,libdir=$(prefix)/lib,datadir=$(prefix)/share,sysconfdir=$(prefix)/etc等等。2)定义一个新的安装路径比如test,
- opencv编译4.2失败
江河地笑
opencvwebpackjavascript
错误[92%]BuildingCXXobjectmodules/tracking/CMakeFiles/opencv_tracking.dir/src/trackerFeature.cpp.o[92%]BuildingCXXobjectmodules/tracking/CMakeFiles/opencv_tracking.dir/src/trackerFeatureSet.cpp.o[92%]Bu
- CMake构建学习笔记6-giflib库的构建
charlee44
CMakeC++学习CMakec++giflibc
前面构建的zlib、libpng、libjpeg和libtiff都提供了CMakeList.txt文件,因此都可以通过CMake进行构建。不过有的依赖库是并没有CMakeList.txt文件,也就是官方没有提供CMake的构建方式,例如本篇要说的GIFLIB。GIFLIB是一个开源的C库,用于处理GIF(图形交换格式)图像文件。GIFLIB是个典型的基于Linux环境的开源库,使用Makefile
- Makefile相关概念总结
松小白song
Linux相关linux运维服务器
目录前言1.基本概念2.Makefile的基本结构3.Makefile中的变量4.伪目标(PhonyTargets)5.Makefile的规则6.自动变量7.条件判断8.函数9.Makefile示例前言Makefile是用于管理项目构建过程的文件,通常用于C/C++等编译型语言项目中。它通过定义规则来描述如何从源文件生成目标文件,自动化编译和链接步骤,避免手动重复输入复杂的编译命令。下面是关于Ma
- Liunx 小程序之进度条
溢檀香
Linux小程序linux开发语言
Liunx小程序之进度条效果前提条件回车和换行缓冲区倒计时进度条纯进度条模拟下载的进度条Progressbar.hProgressbar.cmain.cmakefile效果先来看效果,这其实是一个动态的进度条,后有源码,运行即可:前提条件在制作之前有两个前提条件需要了解回车和换行这个概念,一般人均会混为一谈,而程序员因为熟知'\n',所以深刻理解换行符是将当前光标位置换到下一行的开头而'\n'这个
- makefile工程c语言工程在eclipse下如何配置头文件路径
乔丹搞IT
makefile工程c语言工程在eclipse下如何配置头文件路径如果是普通的c工程,没有使用makefile管理,则参考网络上的文章。这里我使用的是eclipsecppIDE导入一个greenplum5.0.0的源码,在查看gpperfmon源码时,发现在ide中无法直接查看apr相关的头文件内容,发现apr相关的头文件在目录/usr/include/apr-1目录中。修改方法:1,修改源码,把
- 网桥命令brctl移植至ARM,版本bridge-utils-1.7.1
omnibots
工具移植linux
网桥命令bril移植至ARM版本:bridge-utils-1.7(1.5),亲测都没问题内核:3.41.下载bridge-utils-1.7驱动源码download:bridge-utils-1.7配置修改,编译#cdbridge-utils#autoconf#./configure生成Makefile修改以下三个文件夹里的Makefiel/brctl#KERNEL_HEADERS=-I/usr
- ASM系列四 利用Method 组件动态注入方法逻辑
lijingyao8206
字节码技术jvmAOP动态代理ASM
这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以
- java编程思想 --内部类
百合不是茶
java内部类匿名内部类
内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅
1,内部类的创建 内部类是创建在类中的
package com.wj.InsideClass;
/*
* 内部类的创建
*/
public class CreateInsideClass {
public CreateInsideClass(
- web.xml报错
crabdave
web.xml
web.xml报错
The content of element type "web-app" must match "(icon?,display-
name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s
- 泛型类的自定义
麦田的设计者
javaandroid泛型
为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。
采用泛型类,完成扩展。
例如有一个学生类
Student{
Student(){
System.out.println("I'm a student.....");
}
}
有一个老师类
- CSS清除浮动的4中方法
IT独行者
JavaScriptUIcss
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。
1、结尾处加空div标签 clear:both 1 2 3 4
.div
1
{
background
:
#000080
;
border
:
1px
s
- Cygwin使用windows的jdk 配置方法
_wy_
jdkwindowscygwin
1.[vim /etc/profile]
JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43" (windows下jdk路径为D:\Java\jdk1.6.0_43)
PATH="$JAVA_HOME/bin:${PATH}"
CLAS
- linux下安装maven
无量
mavenlinux安装
Linux下安装maven(转) 1.首先到Maven官网
下载安装文件,目前最新版本为3.0.3,下载文件为
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-2.2.1-bin.tar.gz
解压后的文件夹
- tomcat的https 配置,syslog-ng配置
aichenglong
tomcathttp跳转到httpssyslong-ng配置syslog配置
1) tomcat配置https,以及http自动跳转到https的配置
1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit
- 关于领号活动总结
alafqq
活动
关于某彩票活动的总结
具体需求,每个用户进活动页面,领取一个号码,1000中的一个;
活动要求
1,随机性,一定要有随机性;
2,最少中奖概率,如果注数为3200注,则最多中4注
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高);
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库)
解决方案
1,事先产生随机数1000个,并打
- java数据结构 冒泡排序的遍历与排序
百合不是茶
java
java的冒泡排序是一种简单的排序规则
冒泡排序的原理:
比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;
针对所有的元素重复以上的步骤,除了最后一个
例题;将int array[]
- JS检查输入框输入的是否是数字的一种校验方法
bijian1013
js
如下是JS检查输入框输入的是否是数字的一种校验方法:
<form method=post target="_blank">
数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
- Test注解的两个属性:expected和timeout
bijian1013
javaJUnitexpectedtimeout
JUnit4:Test文档中的解释:
The Test annotation supports two optional parameters.
The first, expected, declares that a test method should throw an exception.
If it doesn't throw an exception or if it
- [Gson二]继承关系的POJO的反序列化
bit1129
POJO
父类
package inheritance.test2;
import java.util.Map;
public class Model {
private String field1;
private String field2;
private Map<String, String> infoMap
- 【Spark八十四】Spark零碎知识点记录
bit1129
spark
1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中
- WAS各种脚本作用大全
ronin47
WAS 脚本
http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html
无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下
获取下载
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自
- java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
bylijinnan
switch
借鉴网上的思路,用java实现:
public class NoIfWhile {
/**
* @param args
*
* find x=1+2+3+....n
*/
public static void main(String[] args) {
int n=10;
int re=find(n);
System.o
- Netty源码学习-ObjectEncoder和ObjectDecoder
bylijinnan
javanetty
Netty中传递对象的思路很直观:
Netty中数据的传递是基于ChannelBuffer(也就是byte[]);
那把对象序列化为字节流,就可以在Netty中传递对象了
相应的从ChannelBuffer恢复对象,就是反序列化的过程
Netty已经封装好ObjectEncoder和ObjectDecoder
先看ObjectEncoder
ObjectEncoder是往外发送
- spring 定时任务中cronExpression表达式含义
chicony
cronExpression
一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:
代表含义 是否必须 允许的取值范围 &nb
- Nutz配置Jndi
ctrain
JNDI
1、使用JNDI获取指定资源:
var ioc = {
dao : {
type :"org.nutz.dao.impl.NutDao",
args : [ {jndi :"jdbc/dataSource"} ]
}
}
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可.
- 解决 /bin/sh^M: bad interpreter: No such file or directory
daizj
shell
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具
- [转]for 循环为何可恨?
dcj3sjt126com
程序员读书
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju
- Android实用小技巧
dcj3sjt126com
android
1、去掉所有Activity界面的标题栏
修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
2、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifes
- Oracle 复习笔记之序列
eksliang
Oracle 序列sequenceOracle sequence
转载请出自出处:http://eksliang.iteye.com/blog/2098859
1.序列的作用
序列是用于生成唯一、连续序号的对象
一般用序列来充当数据库表的主键值
2.创建序列语法如下:
create sequence s_emp
start with 1 --开始值
increment by 1 --増长值
maxval
- 有“品”的程序员
gongmeitao
工作
完美程序员的10种品质
完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:
1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强
(范围:用简单方式解决复杂问题)
- 使用KeleyiSQLHelper类进行分页查询
hvt
sql.netC#asp.nethovertree
本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D
- SVG 教程 (三)圆形,椭圆,直线
天梯梦
svg
SVG <circle> SVG 圆形 - <circle>
<circle> 标签可用来创建一个圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" c
- 链表栈
luyulong
java数据结构
public class Node {
private Object object;
private Node next;
public Node() {
this.next = null;
this.object = null;
}
public Object getObject() {
return object;
}
public
- 基础数据结构和算法十:2-3 search tree
sunwinner
Algorithm2-3 search tree
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga
- spring配置定时任务
stunizhengjia
springtimer
最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:
//------------------------定时任务调用的方法------------------------------
/**
* 存储过程定时器
*/
publi
- ITeye 8月技术图书有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
8月试读活动回顾:
http://webmaster.iteye.com/blog/2102830
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《跨终端Web》
gleams:http