Dev C++解决#pragma comment无效的问题

函数有三种书写的方式:定义、实现和调用。

定义 指告诉编译器这个函数存在,就像函数原型那样,例如:

int __cdecl strcmp(const char *_Str1,const char *_Str2);

实现 指直接写函数的内容,是我们用的最多的方式:

void mengbi(void)
{
    mengbi();	//"递归懵逼"
}

很好理解。

调用 谁都知道,就是用它的时候。

abort(0);

一般情况下,有定义必须实现它。我不知道普通的库函数是不是在某个地方实现,但知道有一些函数没有自然的实现,因此不去链接实现文件
(就是静态链接库)是会报错的。例如:

undefined reference to `ege::delay_ms(long)'

于是我们就得连个静态链接库。
静态链接库的扩展名是 .a,像我这里静态链接库的目录之一在
D:\Program Files\Dev-C++\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib
里面,有一堆 libXXX.a。
普通编译器链接的方法是用#pragma,比如

#pragma comment(lib,"wpcap.lib")

Dev C++里没有对它报错,但是竟然一点用都没有,还是对那几个函数报的错。

解决方案

解决方案是什么呢?
套用这个模板:
lib***.a 写成 -l***,把它放在下面这个框框里:

编译器选项
对,就像上面那样填,libgraphics64.a写成-lgraphics64.
现在编译就通过了!

发布了12 篇原创文章 · 获赞 5 · 访问量 5999

猜你喜欢

转载自blog.csdn.net/cjz2005/article/details/104465290