如何解决GCC 在 lib
我有一个 C 文件,它使用了多个 lib 文件。 我正在尝试以下列方式编译文件:
gcc -o myprogram main.c list.lib filelib.lib
但是,在尝试编译时,我收到了我正在使用的所有 undefined reference
函数的一堆 lib
错误。
gcc -o myprogram main.c -l list -l filelib
现在我收到以下错误:
cannot find -llist
cannot fint -lfilelib
我做错了什么?
编辑: 这两个库最初都是使用 Visual Studio 2019,发布模式 x64 创建的。 我使用的是 Windows 10 64 位架构。 在我运行 gcc 的文件夹中,我有以下文件:
main.c
list.lib (copied from VS)
list.h (copied form VS)
filelib.lib (copied from VS)
filelib.h (copied from VS)
在 VS 中的 lib 代码中,我确保函数具有 c-linkage:
#ifdef __cplusplus
#define C_LINKAGE extern "C"
#else
#define C_LINKAGE
#endif
(两个库中每个声明的函数都以 C_LINKAGE 宏开头)
解决方法
.lib 文件是 MSVC 特定的,gcc 无法处理它们,gcc 可以处理 .a 库或 dll(在 Windows 上)
如果您想使用 gcc,请使用 gcc 重建库,或者让 MSVC 创建 DLL。
或者坚持使用微软并使用 MSVC 处理所有事情。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。