1. 在使用openwrt編譯工具鏈編譯測試程式。
(/opt/toolchain_mspdc2k/bin/arm-openwrt-linux-gcc main.c -o test)
警告資訊:
arm-openwrt-linux-gcc: warning: environment variable "staging_dir" not defined
arm-openwrt-linux-gcc: warning: environment variable "staging_dir" not defined
arm-openwrt-linux-gcc: warning: environment variable "staging_dir" not defined
/opt/toolchain_mspdc2k/lib/gcc/arm-openwrt-linux-gnueabi/4.5.4/../../../../arm-openwrt-linux-gnueabi/bin/ld: skipping incompatible /usr/lib/libc.so when searching for -lc
/opt/toolchain_mspdc2k/lib/gcc/arm-openwrt-linux-gnueabi/4.5.4/../../../../arm-openwrt-linux-gnueabi/bin/ld: skipping incompatible /usr/lib/libc.a when searching for -lc
/opt/toolchain_mspdc2k/lib/gcc/arm-openwrt-linux-gnueabi/4.5.4/../../../../arm-openwrt-linux-gnueabi/bin/ld: skipping incompatible /usr/lib/libc_nonshared.a when searching for libc_nonshared.a
解決方法:將工具鏈的編譯工具所在目錄加入的環境變數中。
export staging_dir=/opt/toolchain_mspdc2k/bin:$staging_dir
/opt/toolchain_mspdc2k/bin/arm-openwrt-linux-gcc main.c -o test
2. 將輸出與錯誤輸出都重定向到乙個檔案。
./build.sh > a2>&1
3. 在64-bit os 上編譯**
error while loading shared libraries: libmpc.so.2: cannot open shared object file: no such file or directory
用一下命令安裝 libmpc2:i386
dpkg --add-architecture i386
apt-get update
apt-get install libmpc2:i386
4. 編譯wide-dhcpv6-20080615時遇到下列錯誤:
dhcp6c.c:1434: error: dereferencing pointer to incomplete type
dhcp6c.c:1436: error: dereferencing pointer to incomplete type
在makefile中的cflags後加入如下定義:
cflags += -d_gnu_source
./common.h:158: error: conflicting types for "dprintf"
/usr/include/stdio.h:395: error: previous declaration of "dprintf" was here
在stdio.h已經定義了dprintf,在common.h中屬於重複定義了,修改如下:
perl -pi -e "s/dprintf/debug_printf/g" *.c *.h
sed -i -e "s/dprintf/debug_printf/g" *.c *.h
arm-openwrt-linux-gnueabi/bin/ld: cannot find -lfl
因為flex提供的是靜態庫libfl.a,可以用如下方式獲取動態庫。(從**中copy過來的)
方法一:
>
gcc $cflags -fpic -fpic -wl,-soname,libfl.so.2 -o libfl.so.$version
>
ccl.o dfa.o ecs.o gen.o main.o misc.o nfa.o parse.o scan.o skel.o
>
sym.o tblcmp.o yylex.o
>
>
where $version is the particular version of the library
>
方法二:
or put libfl.a in a separate directory.
ar -x libfl.a to extract the objects from the archive
gcc -shared *.o -o libfl.so to build the shared lib.
>
and then take care of the symlinkage:
>
>
cp -v libfl.so.$version /lib/
>
ln -vsf libfl.so.$version /lib/libfl.so.2
>
ln -vsf libfl.so.2 /lib/libfl.so
>
5. 用./configure生成makefile時遇到如下錯誤
configure: error: package requirements (libdaemon) were not met:
yum install libdaemon-devel
configure: error: package requirements (check >= 0.9.4) were not met:
yum install check-devel
6. 編譯.hpp 檔案
g++ -c -x c++ rapidxml.hpp -o rapidxml.o
7. 中文編碼轉換
cflags += -finput-charset=gbk -fexec-charset=utf-8
8. 兩個dobule數值的比較
#include int double_equal(double a, double b)
多型遇到的問題以及解決方法
我們在學習的過程中肯定會遇到很多的問題,比如我剛開始學多型的時候,遇到的問題,就是,多型是什麼,但後面我學會後,卡在了乙個地方,那就是多型到底該怎麼使用呢,可能大部分人都會有這種問題,感覺多型其實和繼承差不多的,用多型我為什麼不用繼承呢,還有多型的上下轉型到底有什麼用啊,之類的問題,我們今天來看一下...
學習Mysql遇到的問題以及解決方法
access denied for user qiuxingli localhost to database db book 有denied說明這個mysql使用者沒有得到授權,mysql運算元據庫是需要授權的 可以用以下方法來獲取使用者授權 1 用root賬戶登入 我的資料庫的root賬戶賬號是r...
部署專案遇到的mysql問題以及解決方法
1 資料庫報錯 expression 1 of order by clause is not in select list,references column oss web.i.create date which is not in select list this is incompatible...