как собрать плагины с помощью gcc из mingw?
Компиляция под MinGW
Подскажите, пожалуйста, как скопмилировать какой-нибудь пример, используя MinGW.
Я читал. Но вот, допустим, берем такой плагин.
[HaRT] Длинный специфичный текст перенесён в приложение. В следующий раз будет просто удалён.
.def к нему выглядит так:
Почему-то функция OpenPlugin не вызвается, а две другие работают.
[HaRT] Длинный специфичный текст перенесён в приложение. В следующий раз будет просто удалён.
.def к нему выглядит так:
Code: Select all
LIBRARY
EXPORTS
GetPluginInfo=GetPluginInfo@4
OpenPlugin=OpenPlugin@8
SetStartupInfo=SetStartupInfo@4
- Attachments
-
- HelloWorld_FromMinGW.7z
- Программный код, вырезанный из текста сообщения
- (914 Bytes) Downloaded 339 times
- burning shadow
- Posts: 61
- Joined: Tue 13 May, 2008 13:55
- Location: St.Petersburg, Russia
- Contact:
как собрать плагины с помощью gcc из mingw?
Попробовал собрать плагины, только что слитые из SVN с помощью MinGW/GCC, ругается:
Сам, увы, разобраться не смог..
Code: Select all
$ make -f makefile_all_gcc
===========CRT library
make[1]: Entering directory `/d/prog/c/work/far/plugins/common/CRT'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/d/prog/c/work/far/plugins/common/CRT'
===========align
make[1]: Entering directory `/d/prog/c/work/far/plugins/align'
compiling Align.rc
d:\prog\c\mingw\bin\windres.exe: Align.rc:8: syntax error
make[1]: *** [final.32.gcc/obj/Align.res.o] Error 1
make[1]: Leaving directory `/d/prog/c/work/far/plugins/align'
make: *** [align] Error 2
- zg
- zero-gravity
- Posts: 6015
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Re: как собрать плагины с помощью gcc из mingw?
нужен наипоследнейший binutils. там баг в windres исправили.burning shadow wrote:Сам, увы, разобраться не смог..
- burning shadow
- Posts: 61
- Joined: Tue 13 May, 2008 13:55
- Location: St.Petersburg, Russia
- Contact:
-
- Posts: 20
- Joined: Fri 13 Apr, 2007 09:22
Re: как собрать плагины с помощью gcc из mingw?
Может у кого-то завалялись gcc-шниые make файлы для ftp/lib? Там есть для vc, но я пока не умею переделывать
-
- Posts: 20
- Joined: Fri 13 Apr, 2007 09:22
Re: Компиляция под MinGW
в PluginsSDK/VCReadme.txt относительно .def файлов написано
Относится ли это и к gcc ?There is no need to declare your names like ClosePlugin=_ClosePlugin@4
because linker does it automatically.
-
- Posts: 20
- Joined: Fri 13 Apr, 2007 09:22
Re: Компиляция под MinGW
Хе, опытным путем (подстановкой vc def файла вместо gcc) установлено что относится. По крайней мере циферки совпадают
Продолжим эксперимент...
Продолжим эксперимент...
- zg
- zero-gravity
- Posts: 6015
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Re: Компиляция под MinGW
«циферки» как вы изволили выразится, это манглинг. и конкретно означают размер параметров функции.black alpinist wrote:По крайней мере циферки совпадают
-
- Posts: 20
- Joined: Fri 13 Apr, 2007 09:22
Re: Компиляция под MinGW
Нарвался на следующую проблему - при линковке с ключом -nodefaultlibs вылазит куча месаг типа
Без него все нормально. Что не проинклюдилось? Вот линковочная команда:
Code: Select all
c:/mingw/bin/../lib/gcc/mingw32/4.3.0/../../../../mingw32/bin/ld.exe: warning: cannot find entry symbol _DllMain@12; defaulting to 6cbc1000
./final.32.gcc/obj/Notify/nt_Main.o:nt_Main.cpp:(.text+0x32): undefined reference to `_fclose'
./final.32.gcc/obj/Notify/nt_Main.o:nt_Main.cpp:(.text+0xa9): undefined reference to `_fopen'
./final.32.gcc/obj/Notify/nt_Main.o:nt_Main.cpp:(.text+0xc2): undefined reference to `_fopen'
./final.32.gcc/obj/Notify/nt_Main.o:nt_Main.cpp:(.text+0x14f): undefined reference to `_fprintf'
./final.32.gcc/obj/Notify/nt_Main.o:nt_Main.cpp:(.text+0x1a5): undefined reference to `_fprintf'
./final.32.gcc/obj/Notify/nt_Main.o:nt_Main.cpp:(.text+0x1b6): undefined reference to `_fflush'
Code: Select all
mingw32-g++ -e _DllMain@12 -o ftpNotify.fll -Xlinker --base-file -Xlinker ftpNotify.fll.base ./final.32.gcc/obj/Notify/p_All.o ./final.32.gcc/obj/Notify/nt_Main.o ./final.32.gcc/obj/Notify/ftpNotify.res.o -mno-cygwin -mdll -s -nostartfiles -nodefaultlibs -lgcc -L ../common -lCRT -luser32 -lkernel32 -ladvapi32 -lshell32 -lwsock32 -lwinmm