Quantcast
Channel: Active questions tagged gcc - Stack Overflow
Viewing all articles
Browse latest Browse all 22080

ld: undefined reference even though include and library directory was specified

$
0
0

I want to use the libnetlink library shipped with iproute2. I specified it's include dir with -I and it's lib dir with -L. However I still get some undefined reference errors.

test.c: In function ‘addqdisc’:test.c:26:3: warning: ignoring return value of ‘rtnl_open’, declared with attribute warn_unused_result [-Wunused-result]   26 |   rtnl_open(rth, 0);      |   ^~~~~~~~~~~~~~~~~test.c:27:3: warning: ignoring return value of ‘rtnl_talk’, declared with attribute warn_unused_result [-Wunused-result]   27 |   rtnl_talk(rth, &req.n, NULL);      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~/usr/bin/ld: /tmp/ccCnXM9F.o: in function `addqdisc':test.c:(.text+0x79): undefined reference to `rtnl_open'/usr/bin/ld: test.c:(.text+0x97): undefined reference to `rtnl_talk'
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <fcntl.h>#include <asm/types.h>#include <sys/socket.h>#include <linux/netlink.h>#include <linux/rtnetlink.h>#include <libnetlink.h>#include <netinet/in.h>#include <arpa/inet.h>int addqdisc() {  struct rtnl_handle *rth;  struct {    struct nlmsghdr n;    struct tcmsg        t;    char buf[64*1024];  } req = {    .n.nlmsg_len = NLMSG_LENGTH(sizeof(struct tcmsg)),    .n.nlmsg_flags = NLM_F_REQUEST | NLM_F_EXCL | NLM_F_CREATE,    .n.nlmsg_type = RTM_NEWQDISC,    .t.tcm_family = AF_UNSPEC,  };  rtnl_open(rth, 0);  rtnl_talk(rth, &req.n, NULL);}int main() {  addqdisc();  return 0;}

gcc test.c -o test -I/pwd/Downloads/linux-5.17/iproute2/include -l /pwd/Downloads/linux-5.17/iproute2/lib/libnetlink.a -lnetlink -static

Anyone knows why?


Viewing all articles
Browse latest Browse all 22080

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>