vs2010的mfc项目中编译c语言出现错误: "...预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)" 解决方法: 建工程时 建立空项目 或者在项目设置里关闭预编译头的选项! 当 Visual C++ 项目启用了预编译头 (Precompiled header) 功能时,如果项目中同时混合有 .c 和 .cpp 源文件,则可能收到 C1853 编译器错误:fatal error C1853: 'pjtname.pch' precompiled…
前言 从 C# 6.0 开始,C# 编译器就从以前由 C++ 实现的 csc.exe 换成了用 C# 重新实现的开放式 API 式编译服务 Roslyn.这个编译器到现在已经替代了老式编译器,从前 WebForm 的动态编译基础 CSharpCodeProvider 就是对 csc.exe 的调用包装,当然也继承了 csc.exe 的所有毛病.比如这是一个完全的黑盒编译器,把源码传进去返回程序集,中间的符号解析,词法.语法分析,优化和生成这些中间步骤究竟发生了什么我们无从知晓.无法作为脚本引擎把…
[gcc编译步骤] 1.预处理,生成.i的文件[预处理器cpp] 2.将预处理后的文件转换成汇编语言,生成文件.s[编译器egcs] 3.由汇编变为目标代码(机器代码)生成.o的文件[汇编器as] 4.连接目标代码,生成可执行程序[链接器ld] [编译器参数详解] 编写Makefile时,下列编译器参数是赋给CFLAGS的. 例如: CFLAGS = -mmcu=$(MCU) CFLAGS += -DDebug CFLAGS += -DFFD …… -x language filename 设定…
1.简单介绍:编译器是将一种语言翻译成还有一种语言的程序.编译器将源程序的代码作为输出,从而产生用目标语言编写的等价程序.比如源码为C/C++等高级语言,那么目标语言就是目标机器的机器代码.也就是能够直接执行的机器代码(各种二进制). 以下就是一个编译过程的简单样例: x=2 (高级语言) MOV x,2 (汇编语言) C7 06 0000 0002 (机器代码) 2.相关程序 a.解释程序(interpreter):它会马上运行程序而不是编译完毕后在运行,典型的解释程序有Java,Lisp等…
-w: 关闭编译时的警告, 也就是编译后不显示任何warning,因此有时编译中会出现一些诸如数据转换之类的可忽略警告, -Wall: 显示编译后所有警告 -W: 显示警告,但是只是显示编译器认为的会出现错误的警告. 举例说明 对于如下程序 #include <stdio.h> void main() { int a = 10; return 0; } 情况1: 直接编译,使用如下命令 gcc -o test test.c 结果只有一个警告 test.c: In function 'main'…
前言 默认的 Identity 实体类型在大多数时候已经基本够用,很多时候也只是稍微在 IdentityUser 类中增加一些自定义数据字段,比如头像.这次,我要向园友隆重介绍我魔改之后的 Identity 实体类,能支持一些特别风骚的操作.当然也完全兼容内置的 UserManager.RoleManager 和 SignInManager,毕竟也是从内置类型继承扩展出来的. 正文 魔改的实体类基于一组我自定义实体接口,这组接口我也实现了一组打包好的基础类型.因为 Identity 系列实体类型…
Smali背景: Smali,Baksmali分别是指安卓系统里的Java虚拟机(Dalvik)所使用的一种.dex格式文件的汇编器,反汇编器.其语法是一种宽松式的Jasmin/dedexer语法,而且它实现了.dex格式所有功能(注解,调试信息,线路信息等). Smali,Baksmali分别是冰岛语中编译器,反编译器的叫法.也许你会问为什么是冰岛语呢,因为Dalvik是一个冰岛渔村名字.   Smali语法简单介绍如下: Davlik字节码中,寄存器都是32位的,能够支持任何类型,64位类型…
IL是什么? IL是Intermediate Language的缩写,是.Net代码转化成机器语言的一个中间语言,因此又把IL语言称之为反汇编语言. IL工具有哪些? 俗话说,工欲善其事必先利其器.了解IL就要首先从使用工具开始.在.Net世界里有数个不同的IL工具,包含编译器和反编译器.最经典的编译和反编译利器就是.Net Framework自带的ILASM.exe和ILDASM.exe工具,同时还有其他,例如Reflector.exe,ILSay.exe等等. 具体IL指令介绍 要了解IL的…
(转载自 网络)smail 语法总结 http://www.blogjava.net/midea0978/archive/2012/01/04/367847.html Smali背景: Smali,Baksmali分别是指安卓系统里的Java虚拟机(Dalvik)所使用的一种.dex格式文件的汇编器,反汇编器.其语法是一种宽松式的Jasmin/dedexer语法,而且它实现了.dex格式所有功能(注解,调试信息,线路信息等). Smali,Baksmali分别是冰岛语中编译器,反编译器的叫法.也…
第一周课堂测试 1.下列不属于Java后继技术的是(D) A .Android B .JSP C .XML D .Python 2.下列关于Java语言特点的描述,正确的一组是(C) A .面向过程:平台相关:动态 B .面向过程:多线程:静态 C .面向对象:平台无关:动态 D .面向对象:单线程:静态 3.下列说法错误的是(B) A .字节码不能被任何平台直接识别.执行. B .C/C++源程序所产生的可执行文件在所有平台上都能被执行. C .Java语言和其他语言相比,最大的优势就是编写的…
一.前言 1.1 Winrar 解压缩工具 市场上有很多优秀的压缩工具,常用的有Winrar 和360 压缩工具.Winrar是免费压缩工具,特色是每次使用都会弹出广告.影响用户体验和工作效率,当然最重要的是影响心情.效果如下图. 图1-1.Winrar 弹广告效果图 二.问题处理说明 2.1 问题解决方式 此处使用工具Resourcehacker 对winrar.exe 程序进行反编译,找到exe 程序的字符串String Table 表下的广告弹窗文件,修改文件内容使其找不到广告弹窗即可.…
inno setup制作的安装包,默认是不需要管理员权限启动的.我们制作安装包,往往需要做一些设置工作,这些设置工作可能用到管理员权限.使用Resource Hacker修改inno setup资源,使inno settup生成的安装包以管理员权限启动. 1 Resource Hacker简介Resource Hacker 免费软件,用于查看,修改,添加和删除 Win32 可执行文件的资源.内置了一个内部资源编译器和反编译器. 官网:http://www.angusj.com/resourceh…
本文教你如何使用autoconf.automake等来制作一个以源代码形式(.tar.gz)发布的软件.并可在执行configure时使用自定义参数. 一.概述和基础知识 在Linux下得到一个以源代码形式发布的包(一般为.tar.gz或.tar.bz2格式),我们可以用 ./confiugure.make.make install来编译安装,其中在运行./configure的时候还可以根据自己的需要加入不同的参数(可用./configure --help来查看参数表). 先说说执行./conf…
VS2015编译boost1.62 Boost库是一个可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一. Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容.在C++社区中影响甚大,是不折不扣的"准"标准库.Boost由于其对跨平台的强调,对标准C++的强调,与编写平台无关.大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库.但Boost中也有很多是实验性质的东西,在…
你说你学过操作系统这门课?写个无Bug的生产者和消费者模型试试! ——你真的学好了操作系统这门课嘛? 在第壹章,展示过这样图: 其中,左半部分构成了新版Caffe最恼人.最庞大的IO系统. 也是历来最不重视的一部分. 第伍章又对左半部分的独立性进行了分析,我是这么描述到: Datum和Blob(Batch)不是上下文相关的. Blob包含着正向传播的shape信息,这些信息只有初始化网络在初始化时才能确定. 而Datum则只是与输入样本有关. 所以,Datum的读取工作可以在网络未初始化之前就开…
1.数据类型1.1.基本数据类型数据类型分2类:基本数据类型+复合类型基本类型:char short int long float double复合类型:数组 结构体 共用体 类(C语言没有类,C++有) 1.1.1.内存占用与sizeof运算符数据类型就好像一个一个的模子,这个模子实例化出C语言的变量.变量存储在内存中,需要占用一定的内存空间.一个变量占用多少空间是由变量的数据类型决定的.每种数据类型,在不同的机器平台上占用内存是不同的.我们一般讲的时候都是以32位CPU为默认硬件平台来描述:…
用C++实现的一种插件体系结构-----概述 本文讨论一种简单却有效的插件体系结构,它使用C++,动态链接库,基于面向对象编程的思想.首先来看一下使用插件机制能给我们带来哪些方面的好处,从而在适当时候合理的选择使用.1, 增强代码的透明度与一致性:因为插件通常会封装第三方类库或是其他人编写的代码,需要清晰地定义出接口,用清晰一致的接口来面对所有事情.你的代码也不会被转换程序或是库的特殊定制需求弄得乱七糟.2, 改善工程的模块化:你的代码被清析地分成多个独立的模块,可以把它们安置在子工程中的文件组…
stm32启动代码分析 (2012-06-12 09:43:31) 转载▼     最近开始使用ST的stm32w108芯片(也是一款zigbee芯片).开始看他的启动代码看的晕晕呼呼呼的. 还好在csdn上看到一片文章写的不错,分享下: 文章转载至:http://blog.chinaunix.net/uid-2595338-id-2139588.html,感谢原作者!   使用的芯片是 STM32F103VET,编译器使用 IAR ARM V5.5   设置头文件查找路径,例如: $PROJ_…
声明全局变量使用的技术——摘自uC/OS-II中文版 以下是如何定义全局 变量.众所周知,全局变量应该是得到内存分配且可以被其他模块通过C 语言中extern 关键字调用的变量.因此,必须在 .C 和 .H 文件中定义.这种重复的定义很容易导致错误.以下讨论的方法只需用在头文件中定义一次.虽然有点不易懂,但用户一旦掌握,使用起来却很灵活.表1.2 中的定义出现在定义所有全局变量的.H 头文件中. 程序清单 L 1.2 定义全局宏.    #ifdef xxx_GLOBALS    #define…
基本类型:bool,char,short,int,long,float,double 对于char,short,int,long: 多字节类型赋值给少字节类型,对低字节的细节感兴趣,位模式拷贝. 少字节类型赋值给多字节类型,进行位模式扩展,注意符号,符号扩展. float表示法:表示为1.x的(-127-128)次方,可以对数字进行乘2或除2得到1.x的模式再进行表示. 在整型与浮点型互相赋值的过程中,会重新计算值,得到新的位模式,而不是单纯的位模式拷贝. ; float f = i; 直接对原…
1.常用的模块操作命令 (1)lsmod(list module,将模块列表显示),功能是打印出当前内核中已经安装的模块列表 (2)insmod(install module,安装模块),功能是向当前内核中去安装一个模块,用法是insmod xxx.ko (3)modinfo(module information,模块信息),功能是打印出一个内核模块的自带信息.,用法是modinfo xxx.ko,注意要加.ko,也就是说是一个静态的文件形式. (4)rmmod(remove module,卸载…
VS2010 C++环境下DLL和LIB文件目录及名称修改 转自:http://blog.csdn.net/archielau/article/details/8507581 DLL工程,Debug版本下输出文件由basetool.dll basetool.lib 改为basetoolD.dll basetoold.lib 需设置: 1.配置属性-常规-目标文件名 $(ProjectName) 加d 2.配置属性-连接器-常规-输出问件 由 加d 3.配置属性-连接器-高级-导入库,设置文件名$…
LINUX内核分析第七周学习总结:可执行程序的装载 韩玉琪 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 内容提要 一.得到一个可执行程序 1. 预处理.编译.链接 gcc hello.c -o hello.exe gcc编译源代码生成最终可执行的二进制程序,GCC后台隐含执行了四个阶段步骤. 预处理 => 编译 => 汇编 => 链接 预处理:编译器将C源代…
0.其实常规的逻辑判断结构.工具类.文件读写.控制台读写这些的关系都不大,熟悉之后,这些都是灵活运用的问题. 学习c/c++需要预先知道的一个前提就是,虽然有ANSI C标准,但是每个c/c++编译器的实现在不少实用特性(除了标准库外)上存在着很大的差异,所以最好的方法是先针对某种实现(可参考标准)去,而不是针对ANSI C或者C99或者C11标准去学.比如,vc对c99的标准支持就比较奇葩.比如说,在vc++中,内置的布尔类型或者别名就包括BOOL.bool._Bool,如下所示: BOOL…
相关学习资料 http://gcc.gnu.org/ https://gcc.gnu.org/onlinedocs/ http://zh.wikipedia.org/zh/GCC http://blog.csdn.net/casularm/article/details/316149 http://www.bccn.net/Article/kfyy/cyy/jc/200409/9.html http://linux.chinaunix.net/techdoc/develop/2008/12/16…
C++ 基础教程Beta 版 原作:Juan Soulié 翻译:Jing Xu (aqua) 英文原版 本教程根据Juan Soulie的英文版C++教程翻译并改编. 本版为最新校对版,尚未定稿.如有不明或错误之处,请参考英文原版,并敬请在本站留言指正.版权归作者所有,欢迎链接,请勿转载. 本教程对C++语言进行了深入浅出的介绍,从基础知识到ANSI-C++标准的最新功能,内容涵盖了从数组,类等基本概念到多态.模板等高级概念.教程本着实用的原则,每一小节都结合了可以工作的程序实例,以便读者从第…
1.GCC的特点: Gcc(GUN C Compiler)是GUN推出的功能强大.性能优越的多平台编译器,是GUN的代表作制衣.GCC可以在多种硬体平台上编译出可执行程序,其执行效率与一般的编译器相比平均效率要高20%~30%.效率体现在编译出的文件小,花费时间短. 2.GCC基本使用方法:gcc [options] filenames options:编译器所需要的编译选项 filenames:要编译的文件名 3.Gcc编译流程: GCC编译器能将C/C++语言源程序.汇编程序形成可执行文件.…
一.使用make更新静态库 静态库文件是一些.o文件的集合,在Linux中使用ar工具对它进行维护管理.一个静态库通常由多个.o文件组成,这些.o文件可独立的被作为一个规则的目标,库成员作为目标时需要按照如下格式来书写: ARCHIVE(MEMBER) 注:这种格式只能出现在规则的目标和依赖中,不能出现在命令行中.含有这种表达式的规则的命令行只能是ar命令或者其它可以对库成员进行操作的命令.如下规则用于创建库“foolib”,并将“hack.o”成员加入库中: foolib(hack.o) :…
一.gcc编译的情况: 1.linux gcc包含的c/c++编译器,gcc和cc是一样的,c++和g++是一样的,一般c程序就用gcc编译,c++程序就用g++编译. 2.linux gcc的应用:直接编译生成 a.out文件 -o 指定生成文件名字. 3.linux gcc 编译时遇到"undefined reference to 'xxxxx'"的错误,不是编译出错,是连接出错,没有指定链接程序要用到的库.比如数学函数库要 加-lm ,数据库库要加 -lsqlite3,线程函数库…
OPUS压缩与解压的JNI调用(.DLL版本) 一.写在开头: 理论上讲,这是我在博客园的第一篇原创的博客,之前也一直想找个地方写点东西,把最近做的一些东西归纳总结下,但是一般工程做完了一高兴就把东西丢一边就很久不碰了,久而久之就淡忘了.这不是一个很好的习惯,古人也说更好记性不如烂笔头,无论是做学术还是做工程,定期总结与归纳都是一个不错的巩固与提高的方法.另外,也希望给后来者一点可行性的参考(有误导的地方请轻喷). 二.引言: 言归正传,最近在做Android的一个工程,大体是实现在Androi…