未定义引用`GdiplusStartup @ 12'

时间:2012-03-03 01:27:32

标签: c++ linker g++ gdi+

我正在寻找一种方法将GDI +库与g ++编译器一起使用,我已经在网上阅读了一些guildlines并仍然遇到问题...
这是我的代码:

#include "gdiplus.h"  
using namespace Gdiplus;

// Skip Lines

GdiplusStartup(&lpGdiplusToken, &gdiplusStartupInput, &gdiplusStartupOutput);
// Skip Lines  

我已经使用了如下的编译器开关:

g++ -Wall -mwindows -lgdiplus -I"C:\MinGW\include" -I"C:\MinGW\include\gdiplus" -L"C:\MinGW\lib" -g3 -finput-charset=GBK "$(FilePath)" -o "$(FileDir)\$(FileNameNoExt).exe"

我仍然有这样的错误:

C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ccjX3mCb.o: In function `WinMain@16':
D:/Projects/cyau/cyau_pre4_20120226/cyau_main.cpp:65: undefined reference to `GdiplusStartup@12'
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ccjX3mCb.o: In function `Z15ExitApplicationP6HWND__jjl':
D:/Projects/cyau/cyau_pre4_20120226/cyau_main.cpp:128: undefined reference to `GdiplusShutdown@4'

那有什么问题呢?还有什么我需要的吗?
谢谢你的帮助...

3 个答案:

答案 0 :(得分:5)

我收到了与您类似的消息,经过一些研究后我得到了以下内容:在-lgdiplus文件后面的*.cpp放置命令行。例如:

g++ -mwindows program.cpp -lgdiplus

该命令编译了我的GDI +程序。

答案 1 :(得分:1)

我使用DevCPP,并遇到了同样的问题。

libgdiplus.a 创建 gdiplus.def 使用此命令解决了我的问题:

dlltool -k -d gdiplus.def -l libgdiplus.a

最初我在没有 -k 参数的情况下使用上面的命令。

答案 2 :(得分:0)

我没有使用g ++的经验,但我认为问题在于链接。

gdiplus库没有链接,或者与g ++不兼容。 希望这能帮助您继续追踪问题。