Доброго времени суток.
Есть потребность в FreeBSD 7.0 писать shareware-ПО под win32 системы.
В KDevelop, взяв шаблонный проект win32, саму компиляцию побороть удалось, но вот с линкером не очень:cd '/usr/home/user/projects/project_003/debug' && WANT_AUTOCONF_2_5="1" WANT_AUTOMAKE_1_6="1" gmake
gmake all-recursive
Making all in src
компоновка project_003 (g++)
компоновка project_003 (g++)
/usr/lib/crt1.o(.text+0x85): In function `_start':
: undefined reference to `main'
project_003.o(.text+0x26): In function `WinMain':
/usr/home/user/projects/project_003/src/project_003.cpp:9: undefined reference to `MessageBoxA'
gmake[2]: *** [project_003] Ошибка 1
gmake[1]: *** [all-recursive] Ошибка 1
gmake: *** [all] Ошибка 2
*** Завершено с кодом: 2 ***Насколько это реально? И где можно по этому поводу узнать больше?
>Насколько это реально? И где можно по этому поводу узнать больше?Реально, но сложно. Нужны библиотеки виндовс. Например wine ))
>[оверквотинг удален]
>/usr/lib/crt1.o(.text+0x85): In function `_start':
>: undefined reference to `main'
>project_003.o(.text+0x26): In function `WinMain':
>/usr/home/user/projects/project_003/src/project_003.cpp:9: undefined reference to `MessageBoxA'
>gmake[2]: *** [project_003] Ошибка 1
>gmake[1]: *** [all-recursive] Ошибка 1
>gmake: *** [all] Ошибка 2
>*** Завершено с кодом: 2 ***
>
>Насколько это реально? И где можно по этому поводу узнать больше?Ну кто либы для DLL от WinAPI будет указывать ?
(их можно сделать из def файлов)Какой там шароваре, если вы об такую простую вещь спотыкаетесь.
>[оверквотинг удален]
>>gmake[1]: *** [all-recursive] Ошибка 1
>>gmake: *** [all] Ошибка 2
>>*** Завершено с кодом: 2 ***
>>
>>Насколько это реально? И где можно по этому поводу узнать больше?
>
>Ну кто либы для DLL от WinAPI будет указывать ?
>(их можно сделать из def файлов)
>
>Какой там шароваре, если вы об такую простую вещь спотыкаетесь.Шаровары зачастую не гуру пишут. В Unix'ах вообще програмить раньше не пробовал. Можно подробней узнать как линкер победить-то? Что за def файлы? И как с лицензированием в этом случае будет обстоять вопрос (то бишь насколько реально на фриварном софте писать шароварный)?
>
>В Unix'ах вообще програмить раньше не пробовал.Судя по следующему вопросу, и в Windows тоже. Опыт в BeOS, не иначе :)
>Можно подробней узнать как линкер победить-то? Что за def файлы?
Линкеру надо указать подключить библиотеки типа kernel32.lib, user32.lib и прочие. Это не "настоящие" библиотеки, а лишь заглушки к соответствующим DLL.
В-прочем, не понимаю, какое это имеет отношение к UNIX.
Может проще всего использовать кроссплатформенные либы, например Qt?
>Может проще всего использовать кроссплатформенные либы, например Qt?Одно другому перпендикулярно. Речь-то идёт о том, чтобы, сидя в UNIX, получить виндовый .exe. Можно и Qt при этом использовать.
Есть несколько вариантов:
1) в портах (ports) devel/mingw32-* - это комплект кросс-разработки виндовых приложений, фактически mingw - это gcc под Винду, а указанные порты - это сборка под Фрю, к-рая содержит нужные заголовочные файлы и умеет линковать виндовые бинарники
2) wine/winegcc (emulators/wine , man winegcc), альтернатива. Сам wine позволит запускать результаты разработки
3) wine + какой-нибудь виндовый комплект разработки, к-рый через этот вайн и работаетВ любом случае, ожидать адекватной интеграции такой кросс-разработки от Kdevelop или каких-либо других IDE не приходится, будет исключительно редактор с подсветкой и консоль под боком