因为近期弄个console程序,调用了readline,ncurses库,这两个动态库加起来有四百多k.而程序事实上非常小,其它地方也没使用到这两个库 所以想静态编译看看console程序有多大. #arm-linux-gcc cli.c -o console libreadline.a  libncurses.a #ls -l total 1932 -rwxrwxr-x 1 root root   8427 Jul  7 15:19 cli -rw-r--r-- 1 root root   6…
1.Release和Debug的区别 Release版称为发行版,Debug版称为调试版. Debug中可以单步执行.跟踪等功能,但生成的可执行文件比较大,代码运行速度较慢.Release版运行速度较快,可执行文件较小,但在其编译条件下无法执行调试功能. Release的exe文件链接的是标准的MFC DLL(Use MFC in a shared or static dll).这些DLL在安装Windows的时候已经配置,所以这些程序能够在没有安装Visual C++的机器上运行.而Debug…
参考链接: MXE.>大多数程序都是在windows平台下开发的程序.windows 在现实中也是绕不过的一个系统平台,做为受过几年VC,MFC”虐待”的程序员,在做为一个程序员之前是一位Linux重度使用者,受够了MFC之后一直想要找一个框架替换,使用过GTK,wxWidgets,Qt,最后还是Qt用得多一些.我认为程序跨平台应该是一个基本标准,同一份代码不需改动,或者改动极少,放在不同的平台下编译就能使用.不同平台,同样的界面,同样的操作,同样的体验.这里要讲的是我如何在Linux 下开发跨…
除了通过 11.2.2 小节通过命令行的操作来编译在 iTOP-imx6 开发板上运行的程序,还可以直接在 qtcreator 上设置,然后每次编译的程序都可以在开发板上运行.如下图所示,打开 qtcreater 如下图操作 添加 GCC 编译器,如下图所示. 添加编译器路径,点击 apply 如下图. 选择 Qt 版本,如下图. 选择 qt4.7.1 的 qmake 路径点击 apply,如下图. 选择构建套件,如下图. 配置 QT4.7.1 信息,如下图. 到此配置完成,下面举例.新建工程,…
大体的意思是系统内存不够用,创建VM失败.试了网上好几种方法都不行,最后这个方法可以了: 开始->控制面板->系统->高级设置->环境变量->系统变量 新建变量: 变量名: _JAVA_OPTIONS 变量值: -Xmx512M…
Java 应用程序的性能经常成为开发社区中的讨论热点.因为该语言的设计初衷是使用解释的方式支持应用程序的可移植性目标,早期 Java 运行时所提供的性能级别远低于 C 和 C++ 之类的编译语言.尽管这些语言可以提供更高的性能,但是生成的代码只能在有限的几种系统上执行.在过去的十年中,Java 运行时供应商开发了一些复杂的动态编译器,通常称作即时(Just-in-time,JIT)编译器.程序运行时,JIT 编译器选择将最频繁执行的方法编译成本地代码.运行时才进行本地代码编译而不是在程序运行前进…
原文:让C#语言充当自身脚本!--.NET中的动态编译 代码的动态编译并执行是.NET平台提供给我们的很强大的一个工具,用以灵活扩展(当然是面对内部开发人员)复杂而无法估算的逻辑,并通过一些额外的代码来扩展我们已有 的应用程序.这在很大程度上给我们提供了另外一种扩展的方式(当然这并不能算是严格意义上的扩展,但至少为我们提供了一种思路). 动态代码执行可以应用在诸如模板生成,外加逻辑扩展等一些场合.一个简单的例子,为了网站那的响应速度,HTML静态页面往往是我们最好的选择,但基于数据驱动的网站往往…
建议17: 慎用动态编译 //=========这篇博文暂时理解不透......... 动态编译一直是Java的梦想,从Java 6版本它开始支持动态编译了,可以在运行期直接编译.java文件,执行.class,并且能够获得相关的输入输出,甚至还能监听相关的事件.不过,我们最期望的还是给定一段代码,直接编译,然后运行,也就是空中编译执行(on-the-fly),来看如下代码: public class Client { public static void main(String[] args)…
一.LINUX环境下操作: 1.安装交叉编译SDK (仅针对该型号:i.MX6,不同芯片需要对应的交叉编译SDK) 编译方法参考:手动编译用于i.MX6系列的交叉编译SDK 2.下载Tensorflow git clone https://github.com/tensorflow/tensorflow.git cd tensorflow git checkout r1.10 Tensorflow与Bazel编译器(及CUDA,CUDNN)之间需要对应,否则会有兼容性问题. tensorflow…
系列文章 基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客? 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目 基于.NetCore开发博客项目 StarBlog - (3) 模型设计 基于.NetCore开发博客项目 StarBlog - (4) markdown博客批量导入 基于.NetCore开发博客项目 StarBlog - (5) 开始搭建Web项目 基于.NetCore开发博客项目 StarBlog - (6)…
如果是做嵌入式开发. 在Qt下支持JSon最好的办法,可能不是采用qjson这个库.QJson这个库的实例只提供了x86环境下的编译方法. Installing QJson-------------- QJson requires:- Qt 4.0 or greater- cmake 2.6 or greater For Unix/Linux/Mac: mkdir build  cd build  cmake -DCMAKE_INSTALL_PREFIX=_preferred_path_ .. …
目录 . 引言 . 交叉编译 . Cygwin简介 . 静态库编译及使用 . 动态库编译及使用 . MinGW简介 . CodeBlocks简介 0. 引言 UNIX是一个注册商标,是要满足一大堆条件并且支付可观费用才能够被授权使用的一个操作系统.linux是unix的克隆版本,是由其创始人Linus和诸多世界知名的黑客手工打造的一个操作系统.为什么linux和unix之间有很多软件可以很轻松的移植?因为linux也满足POSIX规范,所以在运行机制上跟unix相近.同时,POSIX标准也是Li…
作为初入Qt学习的新人,花了整整一两天时间,对Qt编译版本等问题进行了一步步探索,首先感谢网站博客中文章,开始也不是很明白一些几个问题: 1.Qt版本问题 作为初学者,可能下载时这么多版本,如何选择呢? 版本很多,开发平台Windows.mac.linux等:这里以windows平台为例,x86(Win32位): winrt   平板电脑下 : mingw  Minimalist GNU For Windows,是将GNU开发工具移植到Win32平台下的工具集,用其开发的程序不需要额外的第三方D…
2014-09-19 09:53 (分类:Linux) 排名第一的web服务器. (linux环境:CentOS release 6.5 (Final)) 安装出错:如下 configure: error: APR not found . Please read the documentation 什么是APR? APR(Apache portable Run-time libraries,Apache可移植运行库)的目的如其名称一样,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层…
下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip, 不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0-vs2010.exe,这些版本都只是动态编译的,不是我们 所需要的.只有用源码包才能做真正的纯静态编译,如果用Qt官网已编译的标准库.exe文件进行编译,有可能出现各种错误,而且编译后的文件巨大,我当时 就在这里绕了很大的弯子,请童鞋们注意啦!!可能有些老鸟会笑话,但我本着最严肃的态度告诉菜鸟们,…
好久没有写博客了,这也算是我步入新工作后的第一篇技术博文吧.在进入新公司前,早就有了技术层进入下一个迭代的准备,但很多事情是意想不到的,就像我以 C# 程序员的身份面试入职的,而今却是一个全职的 IOS 开发.从 C# 到 Objective-C 的切换,还是有不少成本的,加上今年又推出了 Swift,以后要学习的路是漫长的,其实,学习的路本身就是漫长的,不应该满足于一个阶段和特定领域.对我而言,语言的切换,已经太常见了,学习一门语言是很容易的事情,但,完全的掌握它,却不是易事,就像去摸清一个陌…
下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip,不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0-vs2010.exe,这些版本都只是动态编译的,不是我们所需要的.只有用源码包才能做真正的纯静态编译,如果用Qt官网已编译的标准库.exe文件进行编译,有可能出现各种错误,而且编译后的文件巨大,我当时就在这里绕了很大的弯子,请童鞋们注意啦!!可能有些老鸟会笑话,但我本着最严肃的态度告诉菜鸟们,上网查…
首先是准备工作,去QT主页下载独立的QT类库安装包以及完整QT SDK安装包,还有QT Creator for windows 版 下载地址:http://qt.nokia.com/downloads-cn     最新是 4.7.4 版 还有一个mingw 4.4.5 静态编译版,用来解决mingwm10.dll. libgcc_s_dw2-1.dll,两个DLL依赖的问题 下载地址是:http://code.google.com/p/qp-gcc/downloads/list 四个文件分别是…
静态编译C/C++程序,让程序运行不受平台限制 由于Linux操作系统的特有elf加载顺序. (可以参考此文). 虽然可以很大程度上解决Windows早期版本的dll hell问题, 但是给部署带来了很大难度 一般常见的解决方法是, 找到一个与目标Linux版本及glibc版本一致的Linux, 将代码及依赖包放在之上编译, 完成后再发布.这种方法与Linux下常见软件安装方法类似. 但是对于商用服务器部署步骤来说未免繁琐, 安全性低. 还有一种方法,使用静态链接. 将所有可执行文件文件依赖的静…
一.X86,即一般普通PC上跑的程序版本,不用修改工程属性 二.X64 1.设置工程平台---会在工程目录下生成  X64 文件夹 在工具栏--->生成--->配置管理器 窗口 设置“活动解决方案平台”和“平台” 为X64,“平台”那里没有X64,就点击新建. 2.选择目标机器平台 在工具栏--->项目--->xx属性 窗口 选择  “配置属性”--->"链接器"--->"高级"--->"目标计算机"--…
静态编译发布 你写了一个小型Qt程序,发布的时候不想要一大堆dll文件,就只想打包成一个exe文件,那么就需要用到静态编译. 下面的教程就是Qt静态编译环境配置 Qt5.6静态编译包下载地址 1.下载Qt5.6静态编译包,解压放在任意目录. 这里我放在了Qt文件下的Tools目录 2.打开Qt Creator -> 工具 -> 选项.. 3.点击Qt Versions添加静态编译包bin目录下的qmake文件. 4.点击 构建和运行 -> 构建套件(kit) -> 添加  5.注意…
学习Python这门语言首先要了解 什么是编译与解释,什么是连接,什么是动态库与静态库, 什么是编译: 编译就是先把高级语言设计的程序翻译成二进制的机器语言,然后CPU直接执行机器码就可以了.一把翻译再执行 编译型语言在于速度快. 什么是解释: 解释就是在程序运行时,才把高级程序语言一条一条地翻译成二进制的机器语言.边运行边翻译成二进制机器语言.所以速度没有编译来得快.边执行边翻译 解释型语言的优点在于可以跨平台. Python语言的优点: 可移植性.可扩展性.可嵌入性 简单.优雅.明确 开发效…
关于vs潜在的升级问题概述 (Visual C++)查看官网的介绍:潜在的升级问题概述 (Visual C++).主要问题: 1. 如果使用 /GL(全程序优化)进行编译,则生成的对象文件只能使用生成它时所用的同一工具集进行链接.即若在编译静态库时开启了全程序优化,那么编译出的静态库不可移植. 2. 在 Visual Studio 2013 及更低版本中,不能保证使用不同编译器工具集和运行时库版本生成的对象文件 (OBJ).静态库 (LIB).动态库 (DLL) 和可执行文件 (EXE) 之间的…
ARM平台NEON指令的编译和优化 本文介绍了ARM平台基于ARM v7-A架构的ARM Cortex-A系列处理器(Cortex-A5, Cortex-A7,Cortex-A8, Cortex-A9, Cortex-A15)上的NEON多媒体处理硬件加速器针对C/C++语言.汇编语言和NEON intrinsics如何编译和优化,包含如何向量化.向量化的ARMCC和GCC编译器选项.NEON的汇编和EABI程序调用规范.如何在bare-metal和Linux操作系统上检测NEON硬件.如何指导…
静态编译 常规编译示例: $gcc xxx.c yyy.c zzz.c -o rslt 注明: gcc编译器会对源文件min.c进行预处理, 编译, 以及链接, 最后生成可执行文件 $gcc -c xxx.c yyy.c zzz.c 注明:gcc编译器会对源文件min.c进行预处理, 编译, 不进行链接, 最后生成的是object file (目标文件) 链接操作示例: $ar rs libstack.a stack.o push.o pop.o is_empty.o ar命令类似于tar命令,…
一.概述:      我们知道QTcreator.这仅仅是个IDE,他包含了一个编译器--qmake.这两者的关系与codeblocks和g++的关系一样,首先要明确这些.      而我们在linux下搭建arm平台的QT编译环境,基本的是要使用适合arm的qmake.正如我们编译在arm上使用c++程序时要用arm-none-linux-gnueabi-g++一样.而qmake仅仅是我们使用的工具,自然不须要也不能换.所以我们仅仅要使用arm-none-linux-gnueabi-g++编译…
---恢复内容开始--- 一般,我们都是通过Visual Studio(下面简称vs)来编写和编译vb.net应用程序的,但是,不少的人并不知道vs是通过何种方式编译程序的.今天,我们就来探讨一下编译vb.net程序的真正原理. 这篇随笔包含如下几个部分: 1.VS是怎么编译的 2.通过vbc.exe来编译应用程序 3.在代码中通过VBCodeProvider动态编译应用程序 ok,首先来说说vs编译应用程序的方法.其实,vs是通过调用vbc.exe来编译vbnet应用程序的.vs把用户编写的代…
静态: 在使用./configure 编译的时候,如果不指定某个模块为动态,即没有使用:enable-mods-shared=module或者enable-module=shared 这个2个中的一个,那么所有的默认模块为静态. 那么何谓静态?  其实就是编译的时候所有的模块自己编译进 httpd 这个文件中(我们启动可以使用这个执行文件,如: ./httpd & ) ,启动的时候这些模块就已经加载进来了,也就是可以使用了, 通常为:<ifmodule> </ifmodule&g…
apache-2.2.22 编译安装笔记 一.静态编译     在使用./configure 编译的时候,即没有使用--enable-mods-shared=[module]或者--enable-[module]=shared这2个中的一个,那么所有的默认模块为静态.何谓静态? 其实就是编译的时候所有的模块自己编译进httpd 这个文件中,启动的时候这些模块就已经加载进来了,也就是可以使用了,通常:<ifmodule> </ifmodule> 来配置.所以大家看到的配置都是<…
Apache拥有4层结构,从核心到外层的module.而外层的module可以用通过静态和动态两种方式与Apache共同工作.这也就引入下文的“动态”和“静态”两种编译安装方式: 静态编译: 编译的时候,所有的模块自己编译进 httpd 这个文件中 ,启动Apache的时候这些模块就已经加载进来了,可以直接来使用,而不用再 httpd.conf 中在 LoadModule 来加载,只要在 <ifmodule></ifmodule> 中来配置就可以了. 动态编译: 编译的时候,使用e…