gpt4 book ai didi

c - GCC,链接库,找不到?

转载 作者:太空狗 更新时间:2023-10-29 15:49:28 24 4
gpt4 key购买 nike

  • 操作系统:Windows 7 Pro X64
  • IDE:面向 C/C++ 开发人员的 Eclipse IDE
  • 编译器:MinGW(最新,4.5.2)

编译 HelloWorld.c 成功;但是当我尝试添加一些外部库时它会阻塞。

我将 .a 和 .dll 文件添加到我的“库”;将两者的路径添加到 PATH 和 Library Path。我还放置了包含文件并配置了包含。据说我拥有的库与 win/mingw 兼容。他们也有不同的 MSVC 下载,这确实有效。

令人沮丧。 ld.exe 给出了完整路径,显然在那里,我有权读/写它们。我还包含了没有路径的它们(它们在库路径和路径中)。

我不明白为什么这不起作用。

c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe: 找不到 -lC:\rhino\数据\库\glfw.dllc:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe: 找不到 -lC:\rhino\data\库\libglfwdll.ac:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe: 找不到 -lC:\rhino\data\lib\libglfw.a

C:\Users\rhino>dir C:\rhino\data\lib\libglfw.a
04/15/2011 05:24 PM 70,384 libglfw.a

更新:

我什至将它们添加到我的 C:\MinGW\lib 路径,但它仍然找不到它们。

最佳答案

Michael Burr 指出了在命令行上引用库的正确方法。库的路径由 -L 开关给出,库的名称由 -l 开关给出(库的名称是文件名,没有lib 部分在开头,.a 后缀在结尾)。

还有一点要指出的是,您正在尝试同时链接到库的静态 (libglfw.a) 和动态 (glfw.dll) 版本,它们都包含在下载中时间。相反,您应该根据自己的需要/愿望选择一个,并且只链接到那个。

链接到静态版本很简单。只需将 -lglfw 添加到命令行即可。

要使用动态库,您应该链接到 dll 的导入库 (libglfwdll.a),使用 -lglfwdll 开关,并省略 dll本身来自链接命令。基本上,导入库不包含任何目标代码,只包含定义;实际代码在dll中。 dll 将在运行时动态链接。 (为此,系统必须能够找到 dll;即它必须在当前工作目录中,在路径中的目录中,或者必须将其目录添加到使用的特殊环境变量中为了这件事;但要让它变得重要,您首先必须成功构建可执行文件。)

关于c - GCC,链接库,找不到?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5683058/

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