Re: [心得] 關於在 Windows 下建立 *.exe 資源檔

看板C_and_CPP (C/C++)作者 (藍影)時間14年前 (2011/12/13 04:01), 編輯推噓2(205)
留言7則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《purpose (purpose)》之銘言: : D:\Desktop>rc haha.rc : D:\Desktop>cl /c goo.c : D:\Desktop>link goo.obj haha.RES : D:\Desktop>goo : Hello World : 如果要用 mingw 建資源,用 ResEdit 建好 haha.rc 跟 resource.h,接著執行如下 : D:\Desktop>windres haha.rc haha.res : D:\Desktop>gcc goo.c haha.res : haha.res: file not recognized: File format not recognized : collect2: ld returned 1 exit status : D:\Desktop>windres haha.rc haha.res.o : D:\Desktop>gcc goo.c haha.res.o : 這樣就可以了。 近來在摸 Win32 於 gcc 下之編譯, 所幸版上已有一篇優質文,所費時間不至於太離譜, 為簡化問題,附上手邊測試之 resource script。 環境為 tdm-gcc-4.5.2 。 menu_one.rc #include "resource.h" IDR_MYMENU MENU BEGIN POPUP "&File" BEGIN MENUITEM "G&o" , ID_STUFF_GO MENUITEM "E&xit", ID_FILE_EXIT END END IDI_MYICON ICON "EdisonX.ico" menu_one.rc 最後會留個 new line vc.bat RC.exe menu_one.rc CL.exe menu_one.c menu_one.res user32.lib del menu_one.obj menu_one.RES pause vc.bat 是可生成 menu_one.exe,且可正常執行的。問題在 gcc.bat gcc.bat gcc.exe -c menu_one.c windres.exe menu_one.rc resource.o gcc.exe menu_one.o resource.o -o menu_one.exe -mwindows pause 重點在 windres 那行,會陷入 dead loop, cmd line output windres.exe: menu_one.rc:2: syntax error 程序嘗試寫入到一個不存在的管道。 程序嘗試寫入到一個不存在的管道。 程序嘗試寫入到一個不存在的管道。 程序嘗試寫入到一個不存在的管道。 程序嘗試寫入到一個不存在的管道。 windres.exe: menu_one.rc:2: syntax error ... 一直重覆以上敘述,直至 console 掛掉為止。請教 windres flag 是否下達指令有誤? 謝謝各位先進不吝指導,感激不盡。 -- No matter how gifted you are, alone, can not change the world. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.177.78.41

12/13 04:12, , 1F
補上原文 #1CvLwD5f
12/13 04:12, 1F

12/13 09:12, , 2F
menu_one.rc 的第二行,好像是 resource.h,確認該檔正確
12/13 09:12, 2F

12/13 15:02, , 3F
p 大之意為 ? 第一行是include resource.h,第二行不是
12/13 15:02, 3F

12/13 15:03, , 4F
開始進行 script 嗎?http://www.funp.net/600342 完整
12/13 15:03, 4F

12/13 15:26, , 5F
上面猜錯了,把 gcc.bat 檔名改成 gcc2.bat 就行了
12/13 15:26, 5F

12/13 15:33, , 6F
!! p大太神了,我卡了一晚最後竟改檔名就過.感激不盡!!
12/13 15:33, 6F

12/13 16:12, , 7F
有p神快拜<(__)>
12/13 16:12, 7F
文章代碼(AID): #1EvbsCDL (C_and_CPP)
文章代碼(AID): #1EvbsCDL (C_and_CPP)