C语言报错undefined reference to `__imp_CreateSolidBrush'是怎么回事?怎样解决?

今天用gcc编译一个窗口程序的时候出现了这样的错误:

img

报错:
undefined reference to `__imp_CreateSolidBrush'
undefined reference to `__imp_SelectObject'
有点不明白是为什么,请问应该如何解决?谢谢

这些都是 gdi32 的函数,gdi32.lib 有存在么?最好用vc++

undefined reference 是编译器找不到函数的实现,你看看是不是没有链接静态库。

gcc 参数说明
-I ( i 的大写)指定头文件路径(相对路径或觉得路径,建议相对路径)
-i指定头文件名字 (一般不使用,而是直接放在**.c 文件中通过#include<***.h> 添加)
-L指定连接的动态库或者静态库路径(相对路径或觉得路径,建议相对路径)
-l (L的小写)指定需要链接的库的名字(链接 libc.a :-lc 链接动态库:libc.so : -lc 注意:-l后面直接添加库名省区“lib”和“.so”或“.a” )

静态库链接 可以看下这个链接

感觉你需要的是写一个完整的 Makefile,或者用集成开发环境构建工程配置这些内容

或者写好 CMakeLists.txt ,这样两个平台都可以用

gcc编译的命令格式不对吧!