jump to navigation

makefile example 31 一月, 2011

Posted by leterboy in Uncategorized.
add a comment

CC=arm-none-linux-gnueabi-gcc -WallCCX=arm-none-linux-gnueabi-g++png_lib=/home/leter/samba/myproj/png_prefix#CFLAGS= -I. “-I./Includes/CV" “-I./Includes" -I${png_lib}/include -D_ARC -DHAS_THREADCFLAGS= -I. “-I./Includes/CV" “-I./Includes" -I${png_lib}/include#LDFLAGS=#SOURCES=main.cpp ColorConverter.cpp AirHands.cpp     AP_Album.cpp     eventParser.cpp      Tools.cpp   xCV.cpp  BinaryThreshold.cSOURCES=main.cpp#OBJECTS=$(SOURCES:.cpp=.o)#OBJECTS= ./ReleaseTemp/fileTool.o ./ReleaseTemp/ColorConverter.o ./ReleaseTemp/main.o ./ReleaseTemp/AirHands.o ./ReleaseTemp/AP_Album.o ./ReleaseTemp/eventParser.o ./ReleaseTemp/Tools.o ./ReleaseTemp/xCV.o ./ReleaseTemp/BinaryThreshold.o ./ReleaseTemp/AP_Album.o#OBJECTS= ColorConverter.o main.o AirHands.o AP_Album.o eventParser.o Tools.o xCV.o BinaryThreshold.oOBJECTS= main.o#LIBS = “-L."  -L${png_lib}/lib “-L./ReleaseLib" -Wl,-Bstatic -lcvaux -lcvhaartraining -lhighgui -Wl,-Bdynamic -lml -lcxcore -lcv  -lpthread  -lpng#LIBS = “-L."  -L${png_lib}/lib “-L/home/leter/samba/myproj/opencv-dist-TI/lib" -Wl,-Bstatic -lcvaux -lcvhaartraining -lhighgui -Wl,-Bdynamic -lml -lcxcore -lcv  -lpthread  -lpng#LIBS = “-L."  -L${png_lib}/lib “-L/home/leter/samba/myproj/OpenCV/lib" -Wl,-Bstatic -lcvaux -lhighgui -lpng12 -lml -lcv -lcxcore -Wl,-Bdynamic -lpthread#LIBS = -L. -L${png_lib}/lib -L/home/leter/samba/myproj/ARM_USBCAM/ReleaseLib -L/home/leter/samba/myproj/opencv-dist-TI/lib -lcv -lcvaux -lcxcore -Wl,-Bstatic -lhighgui -lpng12 -lml -Wl,-Bdynamic -lpthread#LIBS ="-L."  -L${png_lib}/lib “-L/home/leter/samba/myproj/ARM_USBCAM/ReleaseLib"  -lOpenCV -lpthread -lhighgui -lpng -Wl,/home/leter/samba/myproj/png_prefix/lib/libz.so.1.2.3LIBS = “-L." “-L${png_lib}/lib" “-L/home/leter/samba/myproj/opencv-dist-TI/lib" -Wl,-Bstatic -lcv -lcxcore -lcvaux -lcvhaartraining -lhighgui -lpng12 -Wl,-Bdynamic -lml -lpthread
#"-L."  -L${png_lib}/lib “-L/home/leter/samba/myproj/opencv-dist/lib" -lml -lcxcore -lcv -lcvhaartraining -lpthread -lhighgui -lcvaux -lpng -Wl#LIBS = “-L."  -L${png_lib}/lib “-L./ReleaseLib" -Wl,-Bstatic -lOpenCV -Wl,-Bdynamic -lpthread  -lpng#LIBS = “-L."  -L${png_lib}/lib “-L../opencv-dist-TI/lib" -Wl,-Bstatic -lITRIHCI -Wl,-Bdynamic -lpthread  -lpng
EXECUTABLE=AirHand
all:$(SOURCES) $(EXECUTABLE)$(EXECUTABLE): $(OBJECTS) $(CCX) -o $@ $(OBJECTS) $(LIBS) # mv *.o ./ReleaseTemp/ .SUFFIXES: .cc.cpp.o: $(CCX) -c $< $(CFLAGS) -o $@ .c.o: $(CC) -c $(CFLAGS) $< -o $@ obj-clean: rm -f ./ReleaseTemp/*.o rm -f *.o
make-lib: ar -rc libITRIHCI.a $(OBJECTS)

A good website for correct your concepts 28 一月, 2011

Posted by leterboy in Uncategorized.
add a comment

THE C STORAGE CLASSES, SCOPE AND MEMORY ALLOCATION

http://www.tenouk.com/ModuleZ.html

network programming

http://www.tenouk.com/Module39a.html

mysql 無法從遠端連線 5 十一月, 2010

Posted by leterboy in Uncategorized.
add a comment

剛裝好的MySQL Server通常只能本機連線

如果想從外部管理就要修改一些設定值

這好像是基本常識 結果我搞了半天 XD

首先修改”/etc/mysql/my.cnf”

找到bind-address這行 在前面加個#號mark起來存檔

接下來進入MySQL的Command Line打上

View Raw Code?
  1. USE mysql;
  2. UPDATE user SET host=’%’ WHERE host=’127.0.0.1′;

接下來重新啟動MySQL就可以了

不過建議從外部連入以後把%改回127.0.0.1

然後再INSERT一筆新資料 把Host改成自己常用的IP

 

 

 

19 六月, 2010

Posted by leterboy in Uncategorized.
add a comment

./configure error but I had install zlib with prefix already.

configure: error: zlib not installed

should add LDFLAGS and CFLAGS to environment variable

设置一下环境变量CFLAGS和LDFLAGS试试,Makefile一般都通过CFLAGS来设置额外的编译选项,通过LDFLAGS来设置额外的连接选项,configure大概也遵循这个规则吧。
[root@linux libpng-1.2.8-config]# export LDFLAGS=-L$ROOTFS_DIR/usr/local/lib
[root@linux libpng-1.2.8-config]# export CFLAGS=-I$ROOTFS_DIR/usr/local/include
[root@linux libpng-1.2.8-config]# ./configure –host=$ARCH-linux –prefix=$ROOTFS_DIR/usr

设置一下环境变量CFLAGS和LDFLAGS试试,Makefile一般都通过CFLAGS来设置额外的编译选项,通过LDFLAGS来设置额外的连接选项,configure大概也遵循这个规则吧。
[root@linux libpng-1.2.8-config]# export LDFLAGS=-L$ROOTFS_DIR/usr/local/lib
[root@linux libpng-1.2.8-config]# export CFLAGS=-I$ROOTFS_DIR/usr/local/include
[root@linux libpng-1.2.8-config]# ./configure –host=$ARCH-linux –prefix=$ROOTFS_DIR/usr

reconfigure again…

好用免費軟體系列– 光影魔術手 , 好用修圖軟體 7 六月, 2010

Posted by leterboy in Uncategorized.
add a comment

光影魔術手

程式介紹 摘自 http://www.softking.com.tw/soft/clickcount.asp?fid3=24705

【中文化說明】

該繁體中文化版,不需安裝,解壓縮後即可直接使用。如果無法正常解壓縮,則需先行安裝 7-Zip

反轉片效果
模擬反轉片的效果,光影魔術手最重要的功能之一。經處理後照片反差更鮮明,色彩更亮麗。算法經多次改良後,暗部細節得到最大程度的保留,高光部分無溢出,紅色還原十分準確,色彩過渡自然豔麗,絕無色斑!提供多種模式供使用者選擇,其中人像模式對亞洲人的膚色進行了優化,不會出現膚色偏黃現象。獨有的暗部增補算法不僅增強了暗部,同時令高光部分的表現更出色,絕對沒有霧感引入。

數碼補光
當背光拍攝的照片出現黑臉的情況,利用數位補光功能,暗部的亮度可以有效提高,同時,亮部的畫質不受影響,明暗之間的過渡十分自然,暗部的反差也不受影響。並且,特殊的補光算法在高反差的邊緣也不會有光暈的現象產生!

晚霞渲染
這個功能不僅侷限於天空,也可以運用在人像、風景等情況。使用以後,亮度呈現暖紅色調,暗部則顯藍紫色,畫面的色調對比很鮮明,色彩十分豔麗。同時提供使用者對色調平衡、細節過渡、豔麗度的具體控制。

褪色舊相
在看黎明、張曼玉的《一見鍾情》時,有一個鏡頭,畫面的色彩一點點流失,最後只剩下很輕微的色澤,但明暗對比很強烈,同時畫面顆粒感很重(這令層次感減弱),有一種懷舊的感 覺。於是,有了這個特效。

黑白效果
這個效果我要說明一下。提供了兩個參數供使用者調節。反差和對比是兩回事。但都會影響畫面的層次感。當對比降到-20左右,接近黑白沖印的彩色負片效果,但與數位相機內置的黑白模式完全是兩回事了。

反轉片負衝
即正片負衝,效果受人為影響的因素很大。主要特色是畫面中同時存在冷暖色調對比。亮部的飽和度有所增強,呈暖色調但不誇張,暗部發生明顯的色調偏移。

負片效果
這個特效源自台灣網友發明的一個Photo Shop方法。主要通過明暗細節分離、獨立運算,得到一張相對動態範圍較廣的照片。而細節的損失,亦降到最低。所以,又稱為「高寬容度負片效果」。此功能在原有的基礎上經過多次改良,色彩還原性更好,對比度反差均根據負片特點進行模擬,效果已經接近多張包圍曝光的合成圖。

夜景效果
這個特效是我的發明;P。它能把夜景中,在黑暗的天空中存在的各類紅綠噪點徹底刪除,同時,對夜景的燈光、建築細節、畫面銳度等是沒有影響的。和傳統的抑噪方法不同,這裡面沒有採用任何模糊方法,因此絕不影響畫面銳度。

白平衡一指鍵
各個數位相機廠商對白平衡的處理不一樣,光線複雜性與信號保留之間的平衡,導致了白平衡的困難。即便號稱白平衡最準確的OLYMPUS,在室內鎢絲燈的環境下,也無法準確判斷色溫。後期手工校正畫面白平衡是有必要的。「白平衡一指鍵」採用的校正原理與相機白平衡功能的原理是一樣的。
在使用「白平衡一指鍵」時,使用者只要能從畫面中找到「無色物體」,就能還原真實色彩。例如,東方人的眼睛、牙齒、頭髮,風景如水泥地面、白牆、灰樹皮,物體如碗、紙等等,都可以用作選色目標。
為加強人為調整,軟件可進一步人為調整紅綠藍通道的參數,以獲得最為視覺的認可。
我們要理解,客觀的準確和視覺的正確之間的區別。在複雜光線環境中,特別是冷暖光線交匯之處,不存在絕對準確的白平衡。但視覺告訴我們,主體的正確色溫表現就是準確。所以,這時,必須靠人去校正。
最後提醒使用者,雖然所有色溫偏差都可以後期校正,但是,較大的校正,是有色彩溢出失真的。因此,拍攝時的正確曝光、正確設置白平衡,對畫質的影響是十分重要的。

CCD死點修復
CCD上一旦出現死點,所有的照片上,相同的位置都會出現沒有色彩的白點或黑點。根據死點周圍的像素分布,可以對死點的內容進行插值計算,最後使死點得到修補。 為了能夠快速確實CCD的死點位置,需要使用者提供一張全黑或者全白的CCD死點樣片。這個樣片只要供軟件分析出死點位置以後,就不再使用可以刪除。

界面:對比模式和處理模式
提供「對比模式」方便與原圖之間進行對比,提供「處理模式」對照片放大處理,可以任意放大、縮小觀察圖片,最大支援1000%的放大率。支援鼠標滾輪操作。在處理過程中,可以隨時使用鼠標右鍵呼叫中功能菜單,進行快捷操作。

色階和曲線
Photo Shop的項目有很多,照片處理中被使用最多的功能也許非色階及曲線莫屬吧。我更偏愛使用曲線一些,但還是同時提供了與Photo Shop十分相似的兩個功能界面。使用曲線的好處在於,對色彩、明暗的控十分直觀簡易,可以多點劃分色階,並且色階之間的過渡通過曲線而變得圓滑自然。用Photo Shop調整數碼照片,可以堅持不使用任何濾鏡,但不能做到不用色階、曲線。

人像褪黃
某些數碼相機拍攝的照片有普遍偏黃的現象,特別是亞洲人的人像照片,皮膚很黃。我在考慮人像正片模式的時候順便設計了這個人像褪黃的功能,它是通過色調的自動動態調整實現的。它的特色是,只處理照片中人的皮膚的部分,而其他的物體顏色不會受影響。亞洲人的皮膚經過處理以後會顯得更白晰紅潤一些。

浮水印
當把自己得意的攝影作品發布在網上時,很多使用者希望在照片的角落打上一個浮水印,既可以保護作品的版權,又可以彰顯作者的個性。我設計了這個圖片浮水印的功能,它的效果和色影無忌的浮水印有點相似。使用者可以自己製作一個BMP格式的小圖片做自己的簽名,每次鼠標一點即完成浮水印功能。特別的一點在於,除了使用者可以設置浮水印的透明度以外,軟件還會智能去除浮水印的背景,分析出它的不規則邊緣,在邊緣描繪出一圈淡淡化開的陰影。這樣,你擁有的浮水印不僅若隱若現,而且極具立體感。

花樣邊框
複雜花俏的邊框會使你的作品增色。

撕邊效果
可以自由調節所撕邊緣的顏色,其實想做一些似乎仿古破舊的滄桑感,或者歲月流走,時光積澱的優雅。會做圖片的朋友也可以自行設計蒙版層,添加至MASK文件夾內,添加自己喜歡的風格。

彩色浮雕
這其實有點等同於慢慢地銳化,直到物體浮凸出來立體分明,形成浮雕版畫的樣子。避免整體畫面一團和氣。

電視掃描線
模仿電視畫面的效果,一條條的橫紋,有粗細檔可選。一些清晰的畫面用上去後會產生朦朧,霧裡看花似的,有特別的味道。

證件照排版
可以很方便地進行證件照排版,在一張5寸或者6寸照片上排多張1寸或者2寸照,支援身份證大頭照排版、支援護照照片排版。

製作組合圖
製作組合圖的功能是專門為在網絡上開店的使用者製作的。可以輕鬆地把很多張照片合併成一張大照片,用於陳列說明商品、或者用於組圖製作。預設了很多種布局方式(如2×2、3×3等)。使用時可以同時打開很多張照片,可以隨意決定顯示隱藏哪張照片,可以對小照片分別進行簡單的特效處理(如反轉效果)。

高ISO去噪
消費級數位相機使用高ISO設置時(如ISO800),在畫面上會出現很多紅綠噪點,在暗部這些噪點尤其明顯。當使用一段時間CCD發熱後,紅綠噪點情況會更嚴重。高ISO也因此變得不太實用。這個高ISO去噪的功能,可以在不影響畫面細節的情況下,去除紅綠噪點。同時畫面仍保持有高ISO的顆粒感,效果類似高ISO膠片,使數位相機的高ISO設置真正可用。

柔光鏡模擬
柔光鏡比較適合人像照片的處理。在普通的模糊柔光的Photo Shop方法的基礎上進行了改良。針對明暗部進行參數優化,比較智能化。用Photo Shop當然能做到,用光影魔術手更輕巧。

包圍曝光三合一
很多相機可以拍攝RAW格式。拍攝RAW格式以後,可以用RAW軟件一下子產生三張不同EV的照片,即同時再現過曝、正常曝光、欠曝三種不同情況的曝光結果。然後使用者可以利用Photo Shop把這三張照片合成為一張高寬容度的照片。包圍曝光三合一功能就是完成把三張不同曝光量的照片合成為一張高寬容度照片的工作的。利用此功能得到的照片,不僅暗部細節更豐富,亮部的層次感也會更強。當然,使用者也可以事先通過相機的包圍曝光功能得到這樣三張照片,效果也是同樣好的。

porting QT 4.6 on DevKit 8000 with directFB 28 十二月, 2009

Posted by leterboy in Uncategorized.
add a comment

1. set env
PATH=/home/leter/CodeSourcery/Sourcery_G++_Lite/bin:/home/leter/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
PKG_CONFIG_PATH=/home/leter/samba/myproj/gtk_prefix/lib/pkgconfig/

2. configure
./configure -prefix /ITRI/QT_PREFIX -no-largefile -qvfb -embedded arm -little-endian -qt-zlib -qt-freetype -qt-libtiff -qt-libpng -qt-libmng -no-multimedia -no-webkit -no-javascript-jit -no-openssl -I/ITRI/QT_PREFIX/include -xplatform qws/linux-arm-g++ -qt-mouse-tslib
3. modify mkspecs/qws/linux-arm-g++/qmake.conf
# modifications to g++.conf
QMAKE_CC                = /home/leter/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc
QMAKE_CXX               = /home/leter/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-g++
QMAKE_LINK              = /home/leter/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB        = /home/leter/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-g++

# modifications to linux.conf
QMAKE_AR                = /home/leter/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY           = /home/leter/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-objcopy
QMAKE_STRIP             = /home/leter/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-strip

QT_CFLAGS_DIRECTFB = -D_REENTRANT -I/home/leter/samba/myproj/gtk_prefix/include/directfb
QT_LIBS_DIRECTFB = -L/home/leter/samba/myproj/gtk_prefix/lib -ldirectfb -lfusion -ldirect -lpthread -lts
QMAKE_INCDIR += /home/leter/samba/myproj/gtk_prefix/include
QMAKE_LIBDIR += /home/leter/samba/myproj/gtk_prefix/lib

編譯 porting gtk + environement to omap35 8 十二月, 2009

Posted by leterboy in Uncategorized.
add a comment

glib

configure: error: cannot run test program while cross compiling
我是这样解决的第一步:记录下错误的地方如:checking abstract socket namespace… configure: error: cannot run test program while cross compiling
注意到abstract socket namespace在configure中查找abstract socket可以看到类似这样的结构
echo “$as_me:$LINENO: checking abstract socket namespace" >&5
echo $ECHO_N “checking abstract socket namespace… $ECHO_C" >&6
if test “${ac_cv_have_abstract_sockets+set}" = set; then
  echo $ECHO_N “(cached) $ECHO_C" >&6
其中ac_cv_have_abstract_sockets是我们要查找的变量
使用echo ac_cv_have_abstract_sockets=yes>arm-linux.cache
然后
./configure –host=arm-linux –cache-file=arm-linux.cache
缺  glib-genmarshal

需用 sudo apt-get install libglib2.0-dev
  • 編譯 atk-

下載  http://www.icewalkers.com/Linux/Software/514330/ATK.html
configure 之後,make之後,由於 glib-genmarshal為elf無法執行,因此暫時改掉命名,並以 ln -s /usr/bin/glib-genmarshal  連結過來使用

  • 編譯 fontconfig  需先安裝 apt-get install libtool 與autoconf ,然後再下 sh autogen.sh –sysconfdir=/etc –prefix=/usr –mandir=/usr/share/man –localstatedir=/var  產生出 configure

  • 編譯 cairo

需先安裝 pixman ,安裝 pixman-0.17.2 在make時,會有undefined reference , 改為安裝 pixman-0.16.0,即可解決

  • pango

diff 與 patch 的使用… 7 十二月, 2009

Posted by leterboy in Uncategorized.
add a comment

diff 指令:比對兩個檔案之間的差異,一般是用在 ASCII 純文字檔的比對上。 diff 指令用法:

[root@linux ~]# diff [-bBiqn] from-file to-file
選項:
from-file :檔名,作為原始比對檔案的檔名;
to-file   :檔名,作為目的比對檔案的檔名;
# from-file 或 to-file 可以 - 取代, - 代表『Standard input』。

-b :忽略一行當中,多個空白的差異
     (例如 "about me" 與 "about     me" 視為相同)
-B :忽略空白行的差異。
-i :忽略大小寫的不同。
-q :只列出檔案是否有差異。
-n :以 RCS 格式輸出檔案之差異。
-c (-C NUM) :兩個檔案皆加入差異部分前後 NUM 行,以增加輸出之可讀性。預設 NUM=3。 
-u (-U NUM) :加入差異部分前後 NUM 行,以增加輸出之可讀性。預設 NUM=3。

diff -u abc_old abc_new > test.patch
cat test.patch



static link & Dynamic Link & Load 26 十月, 2009

Posted by leterboy in Uncategorized.
13 comments

感謝  tonytonyjanjan 指正

Static link:

Compile時,

library加入程式碼

優:快

劣:佔空間

Dynamic Link:

Compile時,不將library加入程式碼,執行程式的時後,再將 library載入程式碼,若有多個程式共用同一個library,只需載一個librarymemory

優:省空間

劣:慢

Dynamic Load:

Compile時,不將library加入程式碼,執行程式時,遇到函式,才將library載入,用完後再free出空間

優:更省空間

劣:更慢

Static Link

Creating a Static Library:

  1. Compile source codes
    # gcc –c file1.c file2.c file3.c

  2. Create a static library named libmylib.a
    # ar rcs libmylib.a file1.o file2.o file3.o

Using a Static Library:

# gcc –o main main.c –L. –lmylib

Parameters:
-L: the directory of the library
-l: the name of the library

Dynamic Link

Creating a Shared Library:

  1. Compile source codes
    # gcc -c file1.c file2.c file3.c

  2. Create a shared library named libmylib.so
    # gcc -shared libmylib.so file1.c file2.c file3.c

Using a Shared Library:

# gcc –o main main.c –L. –lmylib

Note: Remember to put libmylib.so into PATH, ex. /usr/lib

Dynamic Load:

Creating a Shared Library:

  1. Compile source codes
    # gcc –c file1.c file2.c file3.c

  2. Create a shared library named libmylib.so
    # gcc -shared libmylib.so file1.c file2.c file3.c

Using a Shared Library:

  1. (Reference: http://linux.die.net/man/3/dlopen)

Use the following function to access the shared library:

#include <dlfcn.h>

  • void *dlopen(const char *filename, int flag);

  • char *dlerror(void);

  • void *dlsym(void *handle, const char *symbol);

  • int dlclose(void *handle);

  1. Compile:
    Since above function are implemented in the library libdl.a,
    we need to load this library
    # gcc dltest.c –ldl

Parameters:

-ldl: load the library libdl.a

example

dltest.c

#include <dlfcn.h>

int main()

{

void *handle;

void (*f)();

char *error;

/* open the needed object */

handle = dlopen(“./libmylib.so", RTLD_LAZY);

if(!handle) {

/* get diagnostic information */

fputs(dlerror(), stderr);

exit(1);

}

/* find the address of function and data objects */

f = dlsym(handle, “function1″);

if ((error = dlerror())!=NULL) {

fprintf(stderr, “%s\n", error);

exit(1);

}

/* excute function1 */

f();

/* close a dlopen object */

dlclose(handle);

}

用 ar 指令組合成 static library.
(注意: 你的程式庫一定要加 lib名稱)

-r: 新增 fun.o 到 libfun.a 中

-c: 建立新的程式庫

-s: 將一個 object 檔的 index 寫入程式庫

指令ar rcs lib程式庫名稱 a.o b.o c.o

http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html

在linux建立library給別人用~~ 26 十月, 2009

Posted by leterboy in Uncategorized.
add a comment

http://mqjing.blogspot.com/2009/04/c-gcc-library.html

http://kaineshu.wordpress.com/2007/05/02/%E8%BD%89%E8%B2%BC%E7%94%A8gcc-%E8%87%AA%E8%A3%BD-library/