"未定义参考"从源代码编译Nmap时编译错误

时间:2016-05-05 06:16:45

标签: ubuntu build makefile ubuntu-12.04 nmap

我运行了以下命令:

bsdtar -xf nmap-7.12.tar.bz2
cd nmap-7.12
./configure --with-ncat="no"
fakeroot
make install DESTDIR=`pwd`/tempinstall

然后我想dpkg -b tempinstall制作一个.deb包,但是我收到以下错误消息:

g++ -g -O2 -Wall -fno-strict-aliasing   -I./liblinear -I/usr/include/lua5.2 -I./libdnet-stripped/include  -I./libpcap -I./nbase -I./nsock/include -DHAVE_CONFIG_H -DNMAP_NAME=\"Nmap\" -DNMAP_URL=\"https://nmap.org\" -DNMAP_PLATFORM=\"i686-pc-linux-gnu\" -DNMAPDATADIR=\"/usr/local/share/nmap\" -D_FORTIFY_SOURCE=2 -Wl,-E  -Lnbase -Lnsock/src/    nping/nping.cc   -o nping/nping
/tmp/ccN9jE9k.o: In function `signal_handler(int)':
/home/user/src/nmap-7.12/nping/nping.cc:284: undefined reference to `nping_print(int, char const*, ...)'
/home/user/src/nmap-7.12/nping/nping.cc:298: undefined reference to `nping_warning(int, char const*, ...)'
/home/user/src/nmap-7.12/nping/nping.cc:287: undefined reference to `NpingStats::stopTxClock()'
/home/user/src/nmap-7.12/nping/nping.cc:288: undefined reference to `NpingStats::stopRxClock()'
/home/user/src/nmap-7.12/nping/nping.cc:289: undefined reference to `NpingStats::stopRuntime()'
/home/user/src/nmap-7.12/nping/nping.cc:290: undefined reference to `NpingOps::displayStatistics()'
/home/user/src/nmap-7.12/nping/nping.cc:291: undefined reference to `NpingOps::displayNpingDoneMsg()'
/home/user/src/nmap-7.12/nping/nping.cc:292: undefined reference to `NpingOps::cleanup()'
/tmp/ccN9jE9k.o: In function `main':
/home/user/src/nmap-7.12/nping/nping.cc:162: undefined reference to `ArgParser::ArgParser()'
/home/user/src/nmap-7.12/nping/nping.cc:164: undefined reference to `ProbeMode::ProbeMode()'
/home/user/src/nmap-7.12/nping/nping.cc:170: undefined reference to `NpingStats::startRuntime()'
/home/user/src/nmap-7.12/nping/nping.cc:188: undefined reference to `ArgParser::parseArguments(int, char**)'
/home/user/src/nmap-7.12/nping/nping.cc:189: undefined reference to `NpingOps::validateOptions()'
/home/user/src/nmap-7.12/nping/nping.cc:193: undefined reference to `nping_fatal(int, char const*, ...)'
/home/user/src/nmap-7.12/nping/nping.cc:194: undefined reference to `nping_print(int, char const*, ...)'
/home/user/src/nmap-7.12/nping/nping.cc:200: undefined reference to `NpingOps::issetTargetPorts()'
/home/user/src/nmap-7.12/nping/nping.cc:206: undefined reference to `nping_print(int, char const*, ...)'
/home/user/src/nmap-7.12/nping/nping.cc:207: undefined reference to `NpingTargets::processSpecs()'
/home/user/src/nmap-7.12/nping/nping.cc:208: undefined reference to `NpingTargets::getTargetsFetched()'
/home/user/src/nmap-7.12/nping/nping.cc:211: undefined reference to `nping_print(int, char const*, ...)'
/home/user/src/nmap-7.12/nping/nping.cc:213: undefined reference to `NpingOps::getRole()'
/home/user/src/nmap-7.12/nping/nping.cc:235: undefined reference to `NpingOps::getRole()'
/home/user/src/nmap-7.12/nping/nping.cc:235: undefined reference to `nping_fatal(int, char const*, ...)'
/home/user/src/nmap-7.12/nping/nping.cc:240: undefined reference to `NpingStats::stopRuntime()'
/home/user/src/nmap-7.12/nping/nping.cc:241: undefined reference to `NpingOps::displayStatistics()'
/home/user/src/nmap-7.12/nping/nping.cc:242: undefined reference to `NpingOps::displayNpingDoneMsg()'
/home/user/src/nmap-7.12/nping/nping.cc:243: undefined reference to `NpingOps::cleanup()'
/home/user/src/nmap-7.12/nping/nping.cc:216: undefined reference to `ProbeMode::start()'
/home/user/src/nmap-7.12/nping/nping.cc:217: undefined reference to `ProbeMode::cleanup()'
/home/user/src/nmap-7.12/nping/nping.cc:208: undefined reference to `NpingOps::getRole()'
/home/user/src/nmap-7.12/nping/nping.cc:209: undefined reference to `nping_fatal(int, char const*, ...)'
/home/user/src/nmap-7.12/nping/nping.cc:200: undefined reference to `NpingOps::getMode()'
/home/user/src/nmap-7.12/nping/nping.cc:200: undefined reference to `NpingOps::scan_mode_uses_target_ports(int)'
/home/user/src/nmap-7.12/nping/nping.cc:201: undefined reference to `nping_fatal(int, char const*, ...)'
/home/user/src/nmap-7.12/nping/nping.cc:228: undefined reference to `NpingStats::startClocks()'
/home/user/src/nmap-7.12/nping/nping.cc:229: undefined reference to `EchoServer::start()'
/home/user/src/nmap-7.12/nping/nping.cc:230: undefined reference to `EchoServer::cleanup()'
/home/user/src/nmap-7.12/nping/nping.cc:231: undefined reference to `NpingStats::stopClocks()'
/home/user/src/nmap-7.12/nping/nping.cc:221: undefined reference to `NpingTargets::getNextTarget()'
/home/user/src/nmap-7.12/nping/nping.cc:222: undefined reference to `NpingTargets::rewind()'
/home/user/src/nmap-7.12/nping/nping.cc:223: undefined reference to `NpingOps::getEchoPort()'
/home/user/src/nmap-7.12/nping/nping.cc:223: undefined reference to `EchoClient::start(NpingTarget*, unsigned short)'
/home/user/src/nmap-7.12/nping/nping.cc:224: undefined reference to `EchoClient::cleanup()'
/home/user/src/nmap-7.12/nping/nping.cc:246: undefined reference to `ArgParser::~ArgParser()'
/home/user/src/nmap-7.12/nping/nping.cc:246: undefined reference to `ProbeMode::~ProbeMode()'
/tmp/ccN9jE9k.o: In function `__static_initialization_and_destruction_0':
/home/user/src/nmap-7.12/nping/nping.cc:145: undefined reference to `NpingOps::NpingOps()'
/home/user/src/nmap-7.12/nping/nping.cc:145: undefined reference to `NpingOps::~NpingOps()'
/home/user/src/nmap-7.12/nping/nping.cc:146: undefined reference to `EchoClient::EchoClient()'
/home/user/src/nmap-7.12/nping/nping.cc:146: undefined reference to `EchoClient::~EchoClient()'
/home/user/src/nmap-7.12/nping/nping.cc:147: undefined reference to `EchoServer::EchoServer()'
/home/user/src/nmap-7.12/nping/nping.cc:147: undefined reference to `EchoServer::~EchoServer()'
collect2: ld returned 1 exit status
make: *** [nping/nping] Error 1

可以找到完整的编译日志on pastebin

1 个答案:

答案 0 :(得分:0)

您在没有先致电make install的情况下致电make。隐式规则用于尝试将Nping对象文件链接到nping可执行文件,但这些对象文件不是首先构建的。我刚刚在提交r35795中解决了这个问题,但对于现有版本,您应该运行make然后make install