gpt4 book ai didi

c++ - 如何在 C++ 中包含动态库

转载 作者:行者123 更新时间:2023-11-28 00:37:35 25 4
gpt4 key购买 nike

如果我搜索包含文件 libusb.h 的文件,

$grep -r "libusb.h" /usr/local/lib/

我得到:

Binary file /usr/local/lib//libusb-1.0.0.dylib matches
Binary file /usr/local/lib//libusb-1.0.a matches
Binary file /usr/local/lib//libusb-1.0.dylib matches

但是当我编译我的类时,我得到:

test.cpp:2:10: fatal error: 'libusb.h' file not found
#include <libusb.h>

现在我知道这是因为 /usr/local/lib 文件夹没有正确包含。我尝试了以下类似的方法,但似乎没有任何解决方法。

gcc -lusb test.cpp
C_INCLUDE_PATH=/usr/local/lib
export C_INCLUDE_PATH

更新

感谢一些帮助,我想出了这个命令...

gcc test.cpp -I/usr/local/include -L/usr/local/lib -lusb-1.0

但现在我明白了......

ld: symbol(s) not found for architecture x86_64

我尝试添加

-stdlib=libstdc++

但这似乎也无济于事。

最佳答案

包括 lib 路径在这里对你没有帮助。 lib 路径包含您链接的二进制文件的路径。

您需要找到include 路径,该路径为您链接的库的导出符号提供声明。

一个常见的分布(不是一成不变的!)是:

lib/       (binaries to link against)
include/ (declarations are here!)
bin/ (.so on *nix or .dll or Windows)

关于c++ - 如何在 C++ 中包含动态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20292261/

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