使用x86模拟器加速android模拟器
Submitted by hubdog on Wed, 2013-09-11 01:33为Android编译FFMPEG
Submitted by hubdog on Fri, 2013-08-30 23:47Makefile中对不同文件使用不同的编译选项
Submitted by hubdog on Tue, 2013-08-20 10:58有时,我们需要对不同文件使用不同的编译选项,比如对某些SSE指令使用AVX,但是对其他一些指令使用SSE,注意-mavx会将一些SSE指令自动替换为AVX指令,同样的-msse4.1有时会将SSE2的指令自动转换为SSE4指令,这会导致SSE2的CPU上运行时core dump。所以我们要强制只针对某些文件使用avx或者sse指令。下面就是一个简单的例子
CC=gcc
SRC=source1.c source2.c source3.c
OBJ=$(patsubst %.c,%.o,$(SRC))
EXE=test
FLAGS= -g -O2
source2.o: FLAGS+=-fopenmp
all: $(EXE)
$(EXE): $(OBJ)
$(CC) -o $@ $^ $(FLAGS)
%.o: %.c
$(CC) -c -o $@ $^ $(FLAGS)
clean:
rm $(EXE)$
rm *.o
注意copy时,规则下一行要有Tab,不能是空格,否则make会报告分隔符错误。
在ubuntu上安装boost
Submitted by hubdog on Sun, 2013-08-11 16:50参考
http://particlephysicsandcode.wordpress.com/2013/03/11/installing-boost-...
编译32位的boost,需要下面的命令
sudo ./b2 address-model=32 --with=all -j 2 install
在64位linux上编译32位程序
Submitted by hubdog on Sun, 2013-08-11 16:05将batch批处理移植为Shell脚本
Submitted by hubdog on Thu, 2013-08-08 23:51Shell脚本
1.要以#!/bin/bash开头
2.变量引用赋值语句
Shell
a="123"
批处理
set a=123
引用写法,后一种写法在变量和字符串拼接时可以避免歧义
$a 或者 ${a}
批处理
%a%
3.路径名最好都统一成反斜杠
4.判断文件是否存在
批处理
if NOT EXIST %input% (
Shell
if [ ! -f $input ]; then
5.表达式计算
批处理
set /A a2=%a%/2
shell
half=2
let a2=($a / $half)
6.获取系统时间转换为指定格式字符串
批处理
set date=%date: =0%
set adate=%adate:~0,4%%adate:~5,2%%adate:~8,2%
Shell
adate=$(date +"%Y%m%d")
7.遍历文件
批处理
for /f "usebackq" %%i in (`dir /b %dir%\*.txt`) do call :test_file %%~ni %%i
exit /b
:test_file
echo %1
exit /b
Shell
for i in $dir/*.txt; do
id=$i
echo $id
Virtualbox 实在是不给力
Submitted by hubdog on Wed, 2013-08-07 00:23一直用的virtualbox,主要是嫌弃vmware太大。
结果今天要在虚拟机里面测试一个sse4的指令,搞了半天,发现virtualbox不允许在虚拟机中使用SSE4的指令,没办法只好换成vmware了。
在Ubuntu 上安装Netbeans
Submitted by hubdog on Mon, 2013-08-05 15:08注意在Ubuntu下装Netbeans之后,无法创建新工程,总是说Please Wait,原因是Ubuntu用的是OpenJDK,而Netbeans需要Oracle的JDK,安装方法