編譯cscope-15.8a遇到的問題與解決方案


1)環境

主機:Linux ubuntu 3.2.0-32-generic-pae #51-Ubuntu SMP Wed Sep 26 21:54:23 UTC 2012 i686 i686 i386 GNU/Linux

cscope版本:15.8a

2)遇到的問題:

1.build.c:52:20: 致命錯誤: curses.h:沒有那個文件或目錄;
2.解決問題前面,鏈接不通過;
3.安裝失敗;

3)解決方案:

1.安裝 libncurses5-dev ,sudo apt-get install ncurses-dev
2. 重頭配置編譯,./configure > make > sudo make install
3.sudo make install

4)細節說明與記錄

查看curses相關的lib,發現確實沒有安裝libncurses5-dev
ii  libncurses5                                  5.9-4                                            shared libraries for terminal handling
ii  libncurses5:i386                             5.9-4                                            shared libraries for terminal handling
ii  libncursesw5                                 5.9-4                                            shared libraries for terminal handling (wide character support)
ii  libncursesw5:i386                            5.9-4                                            shared libraries for terminal handling (wide character support)
ii  mtr-tiny                                     0.80-1ubuntu1                                    Full screen ncurses traceroute tool
ii  ncurses-base                                 5.9-4                                            basic terminal type definitions
ii  ncurses-bin                                  5.9-4                                            terminal-related programs and man pages

安裝libncurses5-dev
luogw@luogw-ThinkPad-Edge:~$ sudo apt-get install ncurses-dev
[sudo] password for luogw: 
正在讀取軟件包列表... 完成
正在分析軟件包的依賴關系樹       
正在讀取狀態信息... 完成       
注意,選取 libncurses5-dev 而非 ncurses-dev
將會安裝下列額外的軟件包:
  libtinfo-dev
建議安裝的軟件包:
  ncurses-doc
下列【新】軟件包將被安裝:
  libncurses5-dev libtinfo-dev
升級了 0 個軟件包,新安裝了 2 個軟件包,要卸載 0 個軟件包,有 0 個軟件包未被升級。
需要下載 325 kB 的軟件包。
解壓縮后會消耗掉 1,623 kB 的額外空間。
您希望繼續執行嗎?[Y/n]Y
獲取:1 http://cn.archive.ubuntu.com/ubuntu/ precise/main libtinfo-dev amd64 5.9-4 [103 kB]
獲取:2 http://cn.archive.ubuntu.com/ubuntu/ precise/main libncurses5-dev amd64 5.9-4 [222 kB]
下載 325 kB,耗時 3秒 (99.5 kB/s)         
Selecting previously unselected package libtinfo-dev.
(正在讀取數據庫 ... 系統當前共安裝有 185922 個文件和目錄。)
正在解壓縮 libtinfo-dev (從 .../libtinfo-dev_5.9-4_amd64.deb) ...
Selecting previously unselected package libncurses5-dev.
正在解壓縮 libncurses5-dev (從 .../libncurses5-dev_5.9-4_amd64.deb) ...
正在設置 libtinfo-dev (5.9-4) ...
正在設置 libncurses5-dev (5.9-4) ...

鏈接出錯,重頭配置再編譯ok

/home/luogw/dev-tool/cscope-15.8a/src/input.c:208: undefined reference to `stdscr'
/home/luogw/dev-tool/cscope-15.8a/src/input.c:208: undefined reference to `waddch'
/home/luogw/dev-tool/cscope-15.8a/src/input.c:179: undefined reference to `stdscr'
/home/luogw/dev-tool/cscope-15.8a/src/input.c:179: undefined reference to `waddnstr'
/home/luogw/dev-tool/cscope-15.8a/src/input.c:190: undefined reference to `stdscr'
/home/luogw/dev-tool/cscope-15.8a/src/input.c:190: undefined reference to `waddch'
/home/luogw/dev-tool/cscope-15.8a/src/input.c:193: undefined reference to `stdscr'
/home/luogw/dev-tool/cscope-15.8a/src/input.c:193: undefined reference to `waddch'
/home/luogw/dev-tool/cscope-15.8a/src/input.c:196: undefined reference to `stdscr'
/home/luogw/dev-tool/cscope-15.8a/src/input.c:196: undefined reference to `waddch'
/home/luogw/dev-tool/cscope-15.8a/src/input.c:210: undefined reference to `stdscr'
/home/luogw/dev-tool/cscope-15.8a/src/input.c:210: undefined reference to `winsch'
/home/luogw/dev-tool/cscope-15.8a/src/input.c:211: undefined reference to `stdscr'
/home/luogw/dev-tool/cscope-15.8a/src/input.c:211: undefined reference to `waddch'
input.o: In function `askforchar':
/home/luogw/dev-tool/cscope-15.8a/src/input.c:247: undefined reference to `stdscr'
/home/luogw/dev-tool/cscope-15.8a/src/input.c:247: undefined reference to `waddnstr'
input.o: In function `askforreturn':
/home/luogw/dev-tool/cscope-15.8a/src/input.c:260: undefined reference to `curscr'
/home/luogw/dev-tool/cscope-15.8a/src/input.c:260: undefined reference to `wredrawln'
collect2: ld 返回 1
make[2]: *** [cscope] 錯誤 1
make[2]:正在離開目錄 `/home/luogw/dev-tool/cscope-15.8a/src'
make[1]: *** [all-recursive] 錯誤 1
make[1]:正在離開目錄 `/home/luogw/dev-tool/cscope-15.8a'
make: *** [all] 錯誤 2

luogw@luogw-ThinkPad-Edge:~/dev-tool/cscope-15.8a$ ./configure 
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking whether gcc and cc understand -c and -o together... yes
checking for flex... no
checking for lex... no
checking for bison... no
checking for byacc... no
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
configure: checking "location of ncurses.h file"...
Found ncurses on /usr/include/ncurses.h
checking for ncurses version... 5.9
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking regex.h usability... yes
checking regex.h presence... yes
checking for regex.h... yes
checking for regcomp in -lregex... no
checking for gnome-config... no
checking for pkg-config... true
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking for ANSI C header files... (cached) yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking sys/window.h usability... no
checking sys/window.h presence... no
checking for sys/window.h... no
checking sys/termios.h usability... yes
checking sys/termios.h presence... yes
checking for sys/termios.h... yes
checking for unistd.h... (cached) yes
checking signal.h usability... yes
checking signal.h presence... yes
checking for signal.h... yes
checking floss.h usability... no
checking floss.h presence... no
checking for floss.h... no
checking io.h usability... no
checking io.h presence... no
checking for io.h... no
checking for an ANSI C-conforming const... yes
checking for mode_t... yes
checking for pid_t... yes
checking for size_t... yes
checking for sighandler_t... no
checking for sigsetjmp... yes
checking return type of signal handlers... void
checking for strchr... yes
checking for memcpy... yes
checking for memset... yes
checking for setmode... no
checking for _setmode... no
checking for getcwd... yes
checking for regcmp... no
checking for regcomp... yes
checking for strerror... yes
checking for lstat... yes
checking for fixkeypad... no
checking for getopt_long... yes
checking for stdarg.h... yes
checking for varargs.h... no
checking for vsnprintf... yes
checking whether vsnprintf is C99 compliant... yes
checking for snprintf... yes
checking whether snprintf is C99 compliant... yes
checking for vsnprintf... (cached) yes
checking whether vsnprintf is C99 compliant... (cached) yes
checking for vasprintf... yes
checking for asprintf... yes
checking for vasprintf... (cached) yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating doc/Makefile
config.status: creating src/Makefile
config.status: creating contrib/Makefile
config.status: creating config.h
config.status: executing depfiles commands
luogw@luogw-ThinkPad-Edge:~/dev-tool/cscope-15.8a$ make
make  all-recursive
make[1]: 正在進入目錄 `/home/luogw/dev-tool/cscope-15.8a'
Making all in doc
make[2]: 正在進入目錄 `/home/luogw/dev-tool/cscope-15.8a/doc'
make[2]: 沒有什么可以做的為 `all'。
make[2]:正在離開目錄 `/home/luogw/dev-tool/cscope-15.8a/doc'
Making all in src
make[2]: 正在進入目錄 `/home/luogw/dev-tool/cscope-15.8a/src'
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT fscanner.o -MD -MP -MF .deps/fscanner.Tpo -c -o fscanner.o fscanner.c
mv -f .deps/fscanner.Tpo .deps/fscanner.Po
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT egrep.o -MD -MP -MF .deps/egrep.Tpo -c -o egrep.o egrep.c
mv -f .deps/egrep.Tpo .deps/egrep.Po
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT alloc.o -MD -MP -MF .deps/alloc.Tpo -c -o alloc.o alloc.c
mv -f .deps/alloc.Tpo .deps/alloc.Po
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT basename.o -MD -MP -MF .deps/basename.Tpo -c -o basename.o basename.c
mv -f .deps/basename.Tpo .deps/basename.Po
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT build.o -MD -MP -MF .deps/build.Tpo -c -o build.o build.c
build.c: 在函數‘build’中:
build.c:261:13: 警告: 忽略聲明有 warn_unused_result 屬性的‘fscanf’的返回值 [-Wunused-result]
mv -f .deps/build.Tpo .deps/build.Po
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT command.o -MD -MP -MF .deps/command.Tpo -c -o command.o command.c
mv -f .deps/command.Tpo .deps/command.Po
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT compath.o -MD -MP -MF .deps/compath.Tpo -c -o compath.o compath.c
mv -f .deps/compath.Tpo .deps/compath.Po
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT crossref.o -MD -MP -MF .deps/crossref.Tpo -c -o crossref.o crossref.c
mv -f .deps/crossref.Tpo .deps/crossref.Po
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT dir.o -MD -MP -MF .deps/dir.Tpo -c -o dir.o dir.c
mv -f .deps/dir.Tpo .deps/dir.Po
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT display.o -MD -MP -MF .deps/display.Tpo -c -o display.o display.c
mv -f .deps/display.Tpo .deps/display.Po
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT edit.o -MD -MP -MF .deps/edit.Tpo -c -o edit.o edit.c
mv -f .deps/edit.Tpo .deps/edit.Po
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT exec.o -MD -MP -MF .deps/exec.Tpo -c -o exec.o exec.c
mv -f .deps/exec.Tpo .deps/exec.Po
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT find.o -MD -MP -MF .deps/find.Tpo -c -o find.o find.c
mv -f .deps/find.Tpo .deps/find.Po
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT help.o -MD -MP -MF .deps/help.Tpo -c -o help.o help.c
mv -f .deps/help.Tpo .deps/help.Po
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT history.o -MD -MP -MF .deps/history.Tpo -c -o history.o history.c
mv -f .deps/history.Tpo .deps/history.Po
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT input.o -MD -MP -MF .deps/input.Tpo -c -o input.o input.c
mv -f .deps/input.Tpo .deps/input.Po
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT invlib.o -MD -MP -MF .deps/invlib.Tpo -c -o invlib.o invlib.c
invlib.c: 在函數‘boolfile’中:
invlib.c:978:7: 警告: 忽略聲明有 warn_unused_result 屬性的‘fread’的返回值 [-Wunused-result]
invlib.c:993:10: 警告: 忽略聲明有 warn_unused_result 屬性的‘fread’的返回值 [-Wunused-result]
invlib.c:1002:10: 警告: 忽略聲明有 warn_unused_result 屬性的‘fread’的返回值 [-Wunused-result]
invlib.c:1008:10: 警告: 忽略聲明有 warn_unused_result 屬性的‘fread’的返回值 [-Wunused-result]
invlib.c:1022:10: 警告: 忽略聲明有 warn_unused_result 屬性的‘fread’的返回值 [-Wunused-result]
invlib.c: 在函數‘invfind’中:
invlib.c:781:8: 警告: 忽略聲明有 warn_unused_result 屬性的‘fread’的返回值 [-Wunused-result]
invlib.c: 在函數‘invstep’中:
invlib.c:704:7: 警告: 忽略聲明有 warn_unused_result 屬性的‘fread’的返回值 [-Wunused-result]
invlib.c: 在函數‘invopen’中:
invlib.c:638:8: 警告: 忽略聲明有 warn_unused_result 屬性的‘fread’的返回值 [-Wunused-result]
mv -f .deps/invlib.Tpo .deps/invlib.Po
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT logdir.o -MD -MP -MF .deps/logdir.Tpo -c -o logdir.o logdir.c
mv -f .deps/logdir.Tpo .deps/logdir.Po
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT lookup.o -MD -MP -MF .deps/lookup.Tpo -c -o lookup.o lookup.c
mv -f .deps/lookup.Tpo .deps/lookup.Po
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.c
main.c: 在函數‘main’中:
main.c:618:13: 警告: 忽略聲明有 warn_unused_result 屬性的‘fscanf’的返回值 [-Wunused-result]
main.c:676:9: 警告: 忽略聲明有 warn_unused_result 屬性的‘fgets’的返回值 [-Wunused-result]
mv -f .deps/main.Tpo .deps/main.Po
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT mouse.o -MD -MP -MF .deps/mouse.Tpo -c -o mouse.o mouse.c
mv -f .deps/mouse.Tpo .deps/mouse.Po
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT mypopen.o -MD -MP -MF .deps/mypopen.Tpo -c -o mypopen.o mypopen.c
mv -f .deps/mypopen.Tpo .deps/mypopen.Po
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT vpaccess.o -MD -MP -MF .deps/vpaccess.Tpo -c -o vpaccess.o vpaccess.c
mv -f .deps/vpaccess.Tpo .deps/vpaccess.Po
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT vpfopen.o -MD -MP -MF .deps/vpfopen.Tpo -c -o vpfopen.o vpfopen.c
mv -f .deps/vpfopen.Tpo .deps/vpfopen.Po
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT vpinit.o -MD -MP -MF .deps/vpinit.Tpo -c -o vpinit.o vpinit.c
mv -f .deps/vpinit.Tpo .deps/vpinit.Po
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT vpopen.o -MD -MP -MF .deps/vpopen.Tpo -c -o vpopen.o vpopen.c
mv -f .deps/vpopen.Tpo .deps/vpopen.Po
gcc  -g -O2   -o cscope fscanner.o egrep.o alloc.o basename.o build.o command.o compath.o crossref.o dir.o display.o edit.o exec.o find.o help.o history.o input.o invlib.o logdir.o lookup.o main.o mouse.o mygetenv.o mypopen.o vpaccess.o vpfopen.o vpinit.o vpopen.o -lncurses   
make[2]:正在離開目錄 `/home/luogw/dev-tool/cscope-15.8a/src'
Making all in contrib
make[2]: 正在進入目錄 `/home/luogw/dev-tool/cscope-15.8a/contrib'
make[2]: 沒有什么可以做的為 `all'。
make[2]:正在離開目錄 `/home/luogw/dev-tool/cscope-15.8a/contrib'
make[2]: 正在進入目錄 `/home/luogw/dev-tool/cscope-15.8a'
make[2]:正在離開目錄 `/home/luogw/dev-tool/cscope-15.8a'
make[1]:正在離開目錄 `/home/luogw/dev-tool/cscope-15.8a'



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM