記錄遇到的問題以及解決方法

2021-06-17 22:01:35 字數 3491 閱讀 8990

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...