![](/img/trans.png)
[英]How to link a lib written in D to use it with a program written in C, under Windows, using MinGW GCC?
[英]How to Use .lib file method in c program on GCC Compiler
我有以下代码:
.lib 文件:
contain TRNG_GetRandomData( int *Data, int Size ); Method
.H 文件(头文件):
extern void TRNG_GetRandomData( int *Data, int Size );
.C 代码(源文件):
#include<OpenDrivers.h>
void main()
{
int test[8] ;
TRNG_GetRandomData(test,8);
}
我收到错误
对
TRNG_GetRandomData
未定义引用
任何人都可以帮我解决它吗?
您需要在Makefile中添加lib文件(不带.lib扩展名)的选项-l infront。 我猜头文件存在一些链接问题,您确定头文件已正确包含吗?
顺便说一句,您还可以参考以下问题: 什么是头文件和库文件? 希望这会有所帮助。
我通过从 *.lib 文件中提取所有目标文件并将这些文件添加到链接器解决了类似的问题。
ar x lib3rd_party.lib
gcc <flags> -o my_target my_obj1.o my_obj2.o ... 3rd_party_obj1.o 3rd_party_obj2.o ...
有效。 然后我做了一些“改进”。 我将这些目标文件“重新打包”为静态 *.a 库。
ar r libmylib.a 3rd_party_obj1.o 3rd_party_obj2.o ...
并将我的项目与它联系起来:
gcc <flags> -static -L<libmylib.a_location> -o my_target my_obj1.o my_obj2.o ... -lmylib
它也起作用了。 注意-lmylib
必须在目标文件之后。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.