実行可能ファイルをlibrという外部ライブラリにリンクしようとしています。私は特にそのライブラリのヘルプを探しているのではなく、以下に貼り付けられているリンカーエラーのみを探しています:
undefined reference to `r_asm_new()'
わかりましたので、リンク コマンドを再確認します。
-lr_core -lr_config -lr_cons -lr_cmd -lr_util -lr_flags -lr_asm -lr_lib -lr_debug -lr_hash -lr_bin -lr_lang -lr_io -lr_anal -lr_parse -lr_bp -lr_egg -lr_reg -lr_search -lr_syscall -lr_sign -lr_diff -lr_socket -lr_fs -lr_magic -lr_db
libr パッケージに含まれるすべてのライブラリが含まれているようです。objdump を使用して libr_asm.so ファイルを 2 倍にします。
$ objdump -T libr_asm.so.0.9.3git | grep r_asm_new
00000000000ca66a g DF .text 0000000000000149 Base r_asm_new
私が知る限り、 -l_asm フラグはそれを行うべきでした。私は ac ライブラリを c++ 実行可能ファイルにリンクしていますが、それが状況をどのように変えるかは考えられません。
ありがとう。
編集:完全なリンク行:
/usr/bin/c++ CMakeFiles/main.dir/main.cc.o CMakeFiles/main.dir/ElfFile.cc.o CMakeFiles/main.dir/ElfFileSection.cc.o CMakeFiles/main.dir/ElfFileDefinitions.cc.o CMakeFiles/main.dir/SectionsWindow.cc.o CMakeFiles/main.dir/SectionView.cc.o -o main -rdynamic -L/home/chris/radare_install/lib -lboost_filesystem-mt -lboost_system-mt -lgtkmm-3.0 -latkmm-1.6 -lgdkmm-3.0 -lgiomm-2.4 -lpangomm-1.4 -lgtk-3 -lglibmm-2.4 -lcairomm-1.0 -lgdk-3 -latk-1.0 -lgio-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lpango-1.0 -lcairo -lsigc-2.0 -lgobject-2.0 -lglib-2.0 -lgtksourceviewmm-3.0 -lgtkmm-3.0 -lgtksourceview-3.0 -latkmm-1.6 -lgdkmm-3.0 -lgiomm-2.4 -lpangomm-1.4 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgtk-3 -lgdk-3 -latk-1.0 -lgio-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lpango-1.0 -lcairo -lgobject-2.0 -lglib-2.0 -lr_core -lr_config -lr_cons -lr_cmd -lr_util -lr_flags -lr_lib -lr_debug -lr_hash -lr_bin -lr_lang -lr_io -lr_anal -lr_parse -lr_bp -lr_egg -lr_reg -lr_search -lr_syscall -lr_sign -lr_diff -lr_socket -lr_fs -lr_magic -lr_db -lr_asm -Wl,-rpath,/home/chris/radare_install/lib