Как заставить fasm генерировать COFF obj, чтобы можно было потом его линковать c либами. LINK : fatal error LNK1561: entry point must be defined ?
link.exe /entry:start если линкуешь прогу. Если просто либу, тогда используй lib.exe или link.exe /lib
спасибо. А можно че-нить типа такого же: cl /c main.c link main.obj lib1.lib lib2.lib здесь же не надо выставлять опцию /entry линкеру. ?
нельзя. в сях создается автоматическая точка входа, которая делает переход на (win)main. какая проблема указать /entry?
Проблем нет, это я так. А откуда такая проблема. в исходнике пишу: Код (Text): extrn g_print .... ccall g_print, szExitMsg И получаю при линковке, unresolved external g_print. Хотя при линковке объектника произошедшего из сишного кода, при линковке с теми же библиотеками проблем нет.
letopisec Читаем о соглашениях имён и манглинге. Можно. В сорце указать точку входа директивой entry.
>Читаем о соглашениях имён и манглинге. Ага я подозревал что-то такое, просто нехотелось долго думать И что мне теперь всегда так делать: Код (Text): extrn "_g_print" as g_print или есть способ проще, директивой какой-нибудь? >Можно. В сорце указать точку входа директивой entry. До этого-то я и сам догадался, только вот entry не работает для COFF - illegal instruction. Спасибо, все линкуется теперь.
letopisec А, да. Точка входа задаётся комментарием линкеру (для MS link в виде "/entry:label"). Я точно не помню (примеры есть на форуме фасма), но посмотри в сторону "section linkinfo". А вот по поводу манглинга - ну напиши макрос вида "extern g_print", который на выходе давал бы вышеуказанный код.