编译ipvsadm-1.26 错误:collect2: ld returned 1 exit status

编译: ipvsadm-1.26 编译错误问题

[[email protected] ipvsadm-1.26]# make

make -C libipvs

make[1]: Entering directory `/root/ipvsadm-1.26/libipvs‘

gcc -Wall -Wunused -Wstrict-prototypes -g -fPIC -DLIBIPVS_USE_NL  -DHAVE_NET_IP_VS_H -c -o libipvs.o libipvs.c

gcc -Wall -Wunused -Wstrict-prototypes -g -fPIC -DLIBIPVS_USE_NL  -DHAVE_NET_IP_VS_H -c -o ip_vs_nl_policy.o ip_vs_nl_policy.c

ar rv libipvs.a libipvs.o ip_vs_nl_policy.o

ar: creating libipvs.a

a - libipvs.o

a - ip_vs_nl_policy.o

gcc -shared -Wl,-soname,libipvs.so -o libipvs.so libipvs.o ip_vs_nl_policy.o

make[1]: Leaving directory `/root/ipvsadm-1.26/libipvs‘

gcc -Wall -Wunused -Wstrict-prototypes -g  -DVERSION=\"1.26\" -DSCHEDULERS=\""rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq"\" -DPE_LIST=\""sip"\"  -DHAVE_NET_IP_VS_H -c -o ipvsadm.o ipvsadm.c

ipvsadm.c: In function ‘print_largenum’:

ipvsadm.c:1383: warning: field width should have type ‘int’, but argument 2 has type ‘size_t’

gcc -Wall -Wunused -Wstrict-prototypes -g  -DVERSION=\"1.26\" -DSCHEDULERS=\""rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq"\" -DPE_LIST=\""sip"\"  -DHAVE_NET_IP_VS_H -c -o config_stream.o config_stream.c

gcc -Wall -Wunused -Wstrict-prototypes -g  -DVERSION=\"1.26\" -DSCHEDULERS=\""rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq"\" -DPE_LIST=\""sip"\"  -DHAVE_NET_IP_VS_H -c -o dynamic_array.o dynamic_array.c

gcc -Wall -Wunused -Wstrict-prototypes -g -o ipvsadm ipvsadm.o config_stream.o dynamic_array.o libipvs/libipvs.a  -lnl

ipvsadm.o: In function `parse_options‘:

/root/ipvsadm-1.26/ipvsadm.c:432: undefined reference to `poptGetContext‘

/root/ipvsadm-1.26/ipvsadm.c:435: undefined reference to `poptGetNextOpt‘

/root/ipvsadm-1.26/ipvsadm.c:660: undefined reference to `poptBadOption‘

/root/ipvsadm-1.26/ipvsadm.c:502: undefined reference to `poptGetNextOpt‘

/root/ipvsadm-1.26/ipvsadm.c:667: undefined reference to `poptStrerror‘

/root/ipvsadm-1.26/ipvsadm.c:667: undefined reference to `poptBadOption‘

/root/ipvsadm-1.26/ipvsadm.c:670: undefined reference to `poptFreeContext‘

/root/ipvsadm-1.26/ipvsadm.c:677: undefined reference to `poptGetArg‘

/root/ipvsadm-1.26/ipvsadm.c:678: undefined reference to `poptGetArg‘

/root/ipvsadm-1.26/ipvsadm.c:679: undefined reference to `poptGetArg‘

/root/ipvsadm-1.26/ipvsadm.c:690: undefined reference to `poptGetArg‘

/root/ipvsadm-1.26/ipvsadm.c:693: undefined reference to `poptFreeContext‘

collect2: ld returned 1 exit status

make: *** [ipvsadm] Error 1

解决办法:

yum -y install kernel-headers   popt-static

[[email protected] ipvsadm-1.26]# make clean

rm -f ipvsadm ipvsadm.spec ipvsadm-1.26.tar.gz

rm -rf debian/tmp

find . -name ‘*.[ao]‘ -o -name "*~" -o -name "*.orig" 
    -o -name "*.rej" -o -name core | xargs rm -f

make -C libipvs clean

make[1]: Entering directory `/root/ipvsadm-1.26/libipvs‘

rm -f *.[ao] *~ *.orig *.rej core *.so

make[1]: Leaving directory `/root/ipvsadm-1.26/libipvs‘

[[email protected] ipvsadm-1.26]# make

make -C libipvs

make[1]: Entering directory `/root/ipvsadm-1.26/libipvs‘

gcc -Wall -Wunused -Wstrict-prototypes -g -fPIC -DLIBIPVS_USE_NL  -DHAVE_NET_IP_VS_H -c -o libipvs.o libipvs.c

gcc -Wall -Wunused -Wstrict-prototypes -g -fPIC -DLIBIPVS_USE_NL  -DHAVE_NET_IP_VS_H -c -o ip_vs_nl_policy.o ip_vs_nl_policy.c

ar rv libipvs.a libipvs.o ip_vs_nl_policy.o

ar: creating libipvs.a

a - libipvs.o

a - ip_vs_nl_policy.o

gcc -shared -Wl,-soname,libipvs.so -o libipvs.so libipvs.o ip_vs_nl_policy.o

make[1]: Leaving directory `/root/ipvsadm-1.26/libipvs‘

gcc -Wall -Wunused -Wstrict-prototypes -g  -DVERSION=\"1.26\" -DSCHEDULERS=\""rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq"\" -DPE_LIST=\""sip"\" -DHAVE_POPT -DHAVE_NET_IP_VS_H -c -o ipvsadm.o ipvsadm.c

ipvsadm.c: In function ‘print_largenum’:

ipvsadm.c:1383: warning: field width should have type ‘int’, but argument 2 has type ‘size_t’

gcc -Wall -Wunused -Wstrict-prototypes -g  -DVERSION=\"1.26\" -DSCHEDULERS=\""rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq"\" -DPE_LIST=\""sip"\" -DHAVE_POPT -DHAVE_NET_IP_VS_H -c -o config_stream.o config_stream.c

gcc -Wall -Wunused -Wstrict-prototypes -g  -DVERSION=\"1.26\" -DSCHEDULERS=\""rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq"\" -DPE_LIST=\""sip"\" -DHAVE_POPT -DHAVE_NET_IP_VS_H -c -o dynamic_array.o dynamic_array.c

gcc -Wall -Wunused -Wstrict-prototypes -g -o ipvsadm ipvsadm.o config_stream.o dynamic_array.o libipvs/libipvs.a -lpopt -lnl

[[email protected] ipvsadm-1.26]# 
[[email protected] ipvsadm-1.26]#  make install

make -C libipvs

make[1]: Entering directory `/root/ipvsadm-1.26/libipvs‘

make[1]: Nothing to be done for `all‘.

make[1]: Leaving directory `/root/ipvsadm-1.26/libipvs‘

if [ ! -d /sbin ]; then mkdir -p /sbin; fi

install -m 0755 ipvsadm /sbin

install -m 0755 ipvsadm-save /sbin

install -m 0755 ipvsadm-restore /sbin

[ -d /usr/man/man8 ] || mkdir -p /usr/man/man8

install -m 0644 ipvsadm.8 /usr/man/man8

install -m 0644 ipvsadm-save.8 /usr/man/man8

install -m 0644 ipvsadm-restore.8 /usr/man/man8

[ -d /etc/rc.d/init.d ] || mkdir -p /etc/rc.d/init.d

install -m 0755 ipvsadm.sh /etc/rc.d/init.d/ipvsadm

[[email protected] ipvsadm-1.26]# ipvsadm
时间: 2024-08-07 04:33:09

编译ipvsadm-1.26 错误:collect2: ld returned 1 exit status的相关文章

Dev C++ Permission denied collect2: ld returned 1 exit status 编译错误

Dev-C++  version:5.3.0.3 编译错误:Permission denied collect2: ld returned 1 exit status 原      因:1.编译的时候按F9,默认在同目录下生成exe,会产生这种错的原因是,之前已经编译过一次,存在一个相同名称的exe.其实,你仔                 细观察一下,当按下F9提示编译错误(此时存在这个相同名称的exe)时,虽然不会编译成功生成心得exe,但是等几秒,它会删除 原来的存在同名exe.所以,如

QT错误之——collect2:ld returned 1 exit status

pcDuino3下支持mmc启动,官方的Uboot是采用SPL框架实现的,因为内部的SRAM空间达到32K,我们完全可以在这32K空间内编写一个完整可用小巧的bootloader来完成引导Linux kernel的目的. 我们首先介绍下SPL框架,可以先看下<GNU ARM汇编--(十八)u-boot-采用nand_spl方式的启动方法>和<GNU ARM汇编--(十九)u-boot-nand-spl启动过程分析>,NAND_SPL也算是SPL框架下的一种模式. 当使用Nand f

undefined reference to `pthread_create&#39; collect2: ld returned 1 exit status

Linux下编译多线程程序遇到错误: undefined reference to `pthread_create' collect2: ld returned 1 exit status 原因是系统无法找到pthread_create函数.也就是说编译器在link得时候找不到其中的一个使用库的函数. 解决办法如下: For Linux the correct command is: gcc -pthread xxx.c In general, libraries should follow s

/usr/bin/ld: cannot find -lltdl collect2: ld returned 1 exit status make: *** [sapi/cgi/php-cgi] Err

/usr/bin/ld: cannot find -lltdl collect2: ld returned 1 exit status make: *** [sapi/cgi/php-cgi] Error 1 解决的方法: yum install *ltdl*

Error:collect2:ld returned 1 exit status (总结)

1. 编译成功的例子在后台执行,有时一闪而过,如果再次build ,则会提示上述错误. 解决方法:打开任务管理器,找到相应的exe进程,关闭即可:  或者直接关闭IDE. 2.没有编译成功的情况下,最常见情况是程序本身需要include的头文件被遗漏了 解决方法:细心查找基类所用的头文件,include之后即可. 3..h文件中相关的函数在cpp文件中没有定义,或者说函数的声明(.h中)与定义(.cpp中)不一致 解决方法:查找遗漏的函数,根据需要,具体的定义.将函数名修改一致.

ld returned 1 exit status&quot;的解决办法

在Linux下创建线程时,编译时会出现下面的错误,[[email protected] 807]# gcc -o 22 22.c/tmp/cc21HcoW.o(.text+0x4c): In function `main':: undefined reference to `pthread_create'collect2: ld returned 1 exit status程序为: #include <unistd.h>#include <pthread.h>#include &l

gcc/g++ 编译时出现:“对’xxxx’未定义的引用,collect2: error: ld returned 1 exit status” 的错误

出现的问题: 在使用 make 编译实现一个程序时,出现了下面的错误.查看程序源文件所在的目录时发现程序已经完成了编译,并生成了 list_repo.o 的文件,说明是在程序链接生成可执行文件时发生了问题. storages/local.o:在函数‘LocalStorage::init(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >,

自定义库引用时编译出错“collect2: error: ld returned 1 exit status”

想必很多人都遇到过这样的事情,需要写一个共享库,这个库又不能让所有的人都了解里面是怎么实现的,所以只能提供一个库出来供项目使用,可能是处于保密.核心业务的需要,这些都能够理解.笔者也写了一个简单的东西测试了一下,里面还是有不少东西. "collect2: error: ld returned 1 exit status"首先就遇到了这个问题.查了一下,这种错误网上说法也一大堆,起作用的还不多.在android系统里面加的共享库,需要加"namespace android &q

php7 编译 collect2: error: ld returned 1 exit status

/usr/bin/ld: ext/ldap/.libs/ldap.o: undefined reference to symbol 'ber_strdup'/usr/bin/ld:note: 'ber_strdup' is defined in DSO /lib64/liblber-2.4.so.2 so try adding it to the linker command line/lib64/liblber-2.4.so.2:could not read symbols: Invalid