ncursesを使用してTUIインターフェイスを実装するスタティックライブラリを作成します。私はこの話題を初めて知り、これらの答えを適用すると、私のために が機能しませんでした。ncursesを含む静的ライブラリを作成します。
私は図書館でvarViewer.cをリンクさせたいです。私はこのコードを使ってサンプルファイルをコンパイルします。
のsrc /はexample.cをコンパイルし、SRC /ビューワ/ varViewer.c:
ビン/例にOBS/example.oのリンクgcc -Wall -Wextra -Wnonnull -Isrc/viewer/
-c src/example.c -o obs/example.o -lncurses
-fsanitize=undefined -fprofile-arcs -ftest-coverage -Winline -O2
gcc -Wall -Wextra -Wnonnull -Isrc/viewer/
-c src/viewer/varViewer.c -o obs/viewer/varViewer.o -lncurses
-fsanitize=undefined -fprofile-arcs -ftest-coverage -Winline -O2
:
gcc -o bin/example -Isrc/viewer/
obs/example.o obs/viewer/varViewer.o -lncurses
-fsanitize=undefined -fprofile-arcs -ftest-coverage -Winline -O2
ビン/例期待どおりに動作。
コンパイルのsrc /ビューワ/ varViewer.c:
gcc -Wall -Wextra -Wnonnull -Isrc/viewer/
-c src/viewer/varViewer.c -o lib/objects/varViewer.o
-lncurses -fPIC -O2
とライブラリにそれを置く:私は、適切なオブジェクト・ファイルをコンパイルしようとした私は、他の中でそれを使用しよう
ar -cvr lib/libvarViewer.a lib/objects/varViewer.o
プロジェクトは、
の-Lを使用して、それを含める..../srcが/ビューワ/ libに-lvarViewer
フラグが、私はncursesライブラリと string.hのから使用される機能へのすべての参照は未定義です:
nmの/lib/libvarViewer.a
....
U __snprintf_chk
U __stack_chk_fail
U start_color
U stdscr
U strchr
U strlen
U strncmp
U strncpy
U strnlen
U waddnstr
U wborder
U wclear
U wcolor_set
U wgetnstr
U winsdelln
U winsnstr
U wmove
U wrefresh
正しい方法は何ですかarに電話する?私はすでに-Tオプションを使って "薄い"ライブラリを作成しようとしました。
ありがとう:-)私はあなたの助言に従い、ncurses libにリンクしてみました。残念ながら '/ usr/lib/x86_64-linux-gnu/libncurses.a'と' gcc -I ../ viewer/lib garbage.c -L ../ viewer/lib/-lvarViewer -lを使ってリンクしようとすると:libncurses.a' 'gcc -I ../ viewer/lib garbage.c -L ../ viewer/lib/-lvarViewer -lncurses'が動作する間、私は未定義の参照をたくさん取得します。 何か不足していますか? [この質問](http://stackoverflow.com/questions/3514852/statically-link-ncurses-to-program?rq=1)によると、これはうまくいくはずです。 – anpi
シンボルの定義されていない参照? – Harald
私はそれを要約しようとします: 関数では、 'COLS、LINES、stdscr'のようなマクロは定義されていません。 libncursesの関数の中で、端末関連の記号(tparm、SP、cur_term、...)がありません: 例: /usr/lib/gcc/x86_64-linux-gnu/5/../../。 ./x86_64-linux-gnu/libncurses.a(lib_box.o):関数 'wborder ': (.text + 0x1f):未定義の参照' acs_map ' – anpi