我正在尝试将一个可执行文件与一个名为libr的外部库链接起来。我并不是在寻找关于这个库的帮助,只是希望得到链接器错误的帮助,这个错误粘贴在下面:
undefined reference to `r_asm_new()'好的,所以我仔细检查了我的link命令:
-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文件加倍:
$ objdump -T libr_asm.so.0.9.3git | grep r_asm_new
00000000000ca66a g DF .text 0000000000000149 Base r_asm_new因此,据我所知,-l_asm标志应该已经做到了。我将一个c库链接到一个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 发布于 2013-02-11 04:06:54
....the对这个问题的评论提醒了我:
extern "C" {
#include "foo.h"
}https://stackoverflow.com/questions/14801847
复制相似问题