初めてncursesを試してみたいと思いますが、ソースコードのコンパイルに問題があります。私が知る限り、ncursesは適切なディレクトリにインストールされています。g ++はインストールされていてもncurses.hを見つけることができません
私のメイクは超簡単です:私はlocate ncurses.h
$ locate ncurses.h
/usr/include/ncursesw/ncurses.h
と私はそれが
$ dpkg -l | grep ncurses
ii libncurses5:amd64 5.9+20140118-1ubuntu1 amd64 shared libraries for terminal handling
ii libncursesw5:amd64 5.9+20140118-1ubuntu1 amd64 shared libraries for terminal handling (wide character support)
ii libncursesw5-dev:amd64 5.9+20140118-1ubuntu1 amd64 developer's libraries for ncursesw
ii mtr-tiny 0.85-2 amd64 Full screen ncurses traceroute tool
ii ncurses-base 5.9+20140118-1ubuntu1 all basic terminal type definitions
ii ncurses-bin 5.9+20140118-1ubuntu1 amd64 terminal-related programs and man pages
ii ncurses-term 5.9+20140118-1ubuntu1 all additional terminal type definitions
をインストールしていますかどうかを確認しようとすると、
.cpp :
g++ -Wall -g -o $* $*.cpp -std=c++11 -lncurses
、ここでは私の出力だがg ++はこれを私に伝えます。
bankacct.cpp:18:29: fatal error: ncurses.h: No such file or directory
compilation terminated.
残念ながら、私はrootアクセス権がありません。このマシンでコンパイルできる必要があります。私の選択肢は何ですか?
$ make bankacct
g++ -Wall -g -o bankacct bankacct.cpp -std=c++11 -lncurses
/usr/bin/ld: cannot find -lncurses
と私は-lncurses
を削除しようとした場合、それは私にこの与える::
<ncursesw/ncurses.h>
含めて試してみた
$ make bankacct
g++ -Wall -g -o bankacct bankacct.cpp -std=c++11
/tmp/cc8rPQfK.o: In function `main':
bankacct.cpp:23: undefined reference to `initscr'
今、私はライブラリをリンクしようとしました。ここに私がやったことだ:
g++ -Wall -g -L/usr/lib/x86_64-linux-gnu/ -o $* $*.cpp -std=c++11 -lncurses
と
g++ -Wall -g -L/lib/x86_64-linux-gnu/ -o $* $*.cpp -std=c++11 -lncurses
まだ私に(-lncurses
なし)エラーをundefined reference to 'initscr'
与えたか/usr/bin/ld: cannot find -lncurses
:
$ locate libncurse
/lib/x86_64-linux-gnu/libncurses.so.5
/lib/x86_64-linux-gnu/libncurses.so.5.9
/lib/x86_64-linux-gnu/libncursesw.so.5
/lib/x86_64-linux-gnu/libncursesw.so.5.9
/usr/lib/x86_64-linux-gnu/libncurses++w.a
/usr/lib/x86_64-linux-gnu/libncursesw.a
/usr/lib/x86_64-linux-gnu/libncursesw.so
/usr/share/doc/libncurses5
/usr/share/doc/libncursesw5
/usr/share/doc/libncursesw5-dev
/var/lib/dpkg/info/libncurses5:amd64.list
/var/lib/dpkg/info/libncurses5:amd64.md5sums
/var/lib/dpkg/info/libncurses5:amd64.postinst
/var/lib/dpkg/info/libncurses5:amd64.postrm
/var/lib/dpkg/info/libncurses5:amd64.shlibs
/var/lib/dpkg/info/libncurses5:amd64.symbols
/var/lib/dpkg/info/libncursesw5-dev:amd64.list
/var/lib/dpkg/info/libncursesw5-dev:amd64.md5sums
/var/lib/dpkg/info/libncursesw5-dev:amd64.postinst
/var/lib/dpkg/info/libncursesw5:amd64.list
/var/lib/dpkg/info/libncursesw5:amd64.md5sums
/var/lib/dpkg/info/libncursesw5:amd64.postinst
/var/lib/dpkg/info/libncursesw5:amd64.postrm
/var/lib/dpkg/info/libncursesw5:amd64.shlibs
/var/lib/dpkg/info/libncursesw5:amd64.symbols
それでは、私は私のメイクの2つのバリエーションを試してみました(それあり)
を追加することができます
<ncursesw/ncurses.h>
を指定するには、ソースコードを変更する必要はありませんが必要ソースコードに '#include'のようなヘッダーを含めていますか? –
私は '#include'と '#include 'の両方を試しました。そして、g ++は 'ncurses.h:No such file or directory'を教えてくれました。私のプログラム全体は本質的に '#include ' –
で、 '/ usr/include/ncursesw /'の隣に何がありますか? – Flint