gpt4 book ai didi

编译错误 :/usr/bin/ld: cannot find -lnetlink

转载 作者:太空宇宙 更新时间:2023-11-04 00:07:38 32 4
gpt4 key购买 nike

我正在尝试通过 make 和 gcc 编译一些 c 代码,但我不断得到:

/usr/bin/ld: cannot find -lnetlink

我在 gcc make 参数中包含了 -lnetlink。使用 locate netlink 可以找到多个项目。我什至已经使用 -L/usr/include/linux 告诉 gcc 确切的位置,但它仍然给出错误。

gcc 命令参数如下:

gcc -g -ggdb -Wall -Wextra  -o mt6d mt6d.o address_worker.o tunnel_worker.o mt6d_assoc.o addr_gen.o send_utils.o if_utils.o tun_utils.o icmp_utils.o utils.o  -lcrypto -lssl -lnetlink -lpthread -lnetfilter_queue

我也遇到过 libnetlink.h 的错误,但能够解决这些问题,但如果这可能相关,我会在此处包含该错误,并且此错误紧随其后是固定的。使用 C_INCLUDE_PATH

修复

我最近升级到 Ubuntu 13.04,之前使用的是 11.04。

如果您需要更多信息,请告诉我。任何帮助将不胜感激!

谢谢,-艾伦

最佳答案

I'm trying to compile some c code via make with gcc, but I keep getting:

从技术上讲,这个阶段称为链接。这种差异乍一看可能很微妙,但它确实很重要,可以在出现此类问题时帮助制定调查框架。

您不应使用 -L 引用 /usr/include 路径。 -L 添加到库的搜索路径,通常只有头文件应该显示在 /usr/include 下。

libnl 启用 pkg-config,因此您应该使用它。

例如(假设您安装了 libnl-3-dev):

gcc -o my_executable $(pkg-config --libs libnl-3.0) my_foo.o my_bar.o

Makefile 中,您可以执行以下操作来实现该效果:

LDLIBS+=$(shell pkg-config --libs libnl-3.0)
CFLAGS+=$(shell pkg-config --cflags libnl-3.0)

关于编译错误 :/usr/bin/ld: cannot find -lnetlink,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17204305/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com