gpt4 book ai didi

c - 在链接到静态库的 DEV-CPP 中构建控制台应用程序时,如何解决对 _imp__** 的 undefined reference ?

转载 作者:太空宇宙 更新时间:2023-11-04 04:53:27 24 4
gpt4 key购买 nike

背景信息
我正在尝试根据此 Instructions 构建 GAUL 库.

问题
好吧,我有两个 C 静态库,由我在 Dev-CPP Windows 7 64 位中构建,一个引用另一个。

为了测试它们,我创建了一个引用它们的控制台应用程序。

好吧,当我尝试编译时,这是我得到的日志:

> Compiler: Default compiler  > Building Makefile: "C:\Soft\GAUL\Makefile.win"  > Executing  make...  > make.exe -f  > "C:\Soft\GAUL\Makefile.win" all  > **gcc.exe ../gaul-devel-windows/examples/struggle.o  -o "struggle.exe" -L"C:/Dev-Cpp/lib" gaul-util.a gaul-devel.a**    >   > gaul-util.a(memory_util.o)(.text+0x2e):memory_util.c: undefined reference to '_imp__mem_chunk_new_real'  > gaul-util.a(memory_util.o)(.text+0x6c):memory_util.c: undefined reference to '_imp__mem_chunk_free_real'  > ...  > gaul-devel.a(ga_core.o)(.text+0x101):ga_core.c: undefined reference to 'slink_free_all'   > gaul-devel.a(ga_core.o)(.text+0x360):ga_core.c: undefined reference to 'mem_chunk_new_real'  > ...  > collect2: ld returned 1  > exit status> > make.exe: *** [struggle.exe] Error 1> > Execution terminated

认为这与 gcc 命令中使用的参数有关。

实际情况
我试过:
- 将库复制到 C:\Dev-Cpp\lib
- 在库名前使用完整地址
- 在库名称前使用 -l
- 名称后不使用 .a

没有成功的结果。

谁能指出我正确的方向?

提前致谢。

最佳答案

链接器 (ld) 的参数顺序很重要。如果您的构建在

gcc.exe ../gaul-devel-windows/examples/struggle.o  -o "struggle.exe" -L"C:/Dev-Cpp/lib" gaul-util.a gaul-devel.a

行,然后尝试颠倒最后两个文件的顺序:

gcc.exe ../gaul-devel-windows/examples/struggle.o  -o "struggle.exe" -L"C:/Dev-Cpp/lib" gaul-devel.a gaul-util.a

关于c - 在链接到静态库的 DEV-CPP 中构建控制台应用程序时,如何解决对 _imp__** 的 undefined reference ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12323374/

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