Thread View: pl.comp.lang.asm
7 messages
7 total messages
Started by Remek
Mon, 28 Aug 2006 01:37
Opcje linkera
Author: Remek
Date: Mon, 28 Aug 2006 01:37
Date: Mon, 28 Aug 2006 01:37
66 lines
2331 bytes
2331 bytes
Witam!
Czy mógłby mnie ktoś poratować wiedzą - co oznaczają opcje
link.exe z Masm32v8:
/ALIGN:#
/BASE:{address|@filename,key}
/COMMENT:comment
/DEBUG
/DEBUGTYPE:{CV|COFF}
/DEF:filename
/DEFAULTLIB:library
/DLL
/DRIVER[:{UPONLY|WDM}]
/ENTRY:symbol
/EXETYPE:DYNAMIC
/EXPORT:symbol
/FIXED[:NO]
/FORCE[:{MULTIPLE|UNRESOLVED}]
/GPSIZE:#
/HEAP:reserve[,commit]
/IMPLIB:filename
/INCLUDE:symbol
/INCREMENTAL:{YES|NO}
/LARGEADDRESSAWARE[:NO]
/LIBPATH:dir
/MACHINE:{ALPHA|ARM|IX86|MIPS|MIPS16|MIPSR41XX|PPC|SH3|SH4}
/MAP[:filename]
/MAPINFO:{EXPORTS|FIXUPS|LINES}
/MERGE:from=to
/NODEFAULTLIB[:library]
/NOENTRY
/NOLOGO
/OPT:{ICF[,iterations]|NOICF|NOREF|NOWIN98|REF|WIN98}
/ORDER:@filename
/OUT:filename
/PDB:{filename|NONE}
/PDBTYPE:{CON[SOLIDATE]|SEPT[YPES]}
/PROFILE
/RELEASE
/SECTION:name,[E][R][W][S][D][K][L][P][X]
/STACK:reserve[,commit]
/STUB:filename
/SUBSYSTEM:{NATIVE|WINDOWS|CONSOLE|WINDOWSCE|POSIX}[,#[.##]]
/SWAPRUN:{CD|NET}
/VERBOSE[:LIB]
/VERSION:#[.#]
/VXD
/WARN[:warninglevel]
/WINDOWSCE:{CONVERT|EMULATION}
/WS:AGGRESSIVE
I co oznaczają przełączniki:
4.0 /entry:start
w wierszu commandline:
link.exe /SUBSYSTEM:WINDOWS,4.0 /entry:start %name%.obj %name%.res
Pozdrawiam
--
Remek
Re: Opcje linkera
Author: Lopez
Date: Mon, 28 Aug 2006 06:45
Date: Mon, 28 Aug 2006 06:45
35 lines
1469 bytes
1469 bytes
Remek wrote:
> Witam!
>
> Czy mógłby mnie ktoś poratować wiedzą - co oznaczają opcje
> link.exe z Masm32v8:
>
poczytaj o budowie i sekcjach plików wykonywalnych pe,
a zrozumiesz działanie większosci opcji.
>
> I co oznaczają przełączniki:
>
> 4.0 /entry:start
>
> w wierszu commandline:
>
> link.exe /SUBSYSTEM:WINDOWS,4.0 /entry:start %name%.obj %name%.res
>
/SUBSYSTEM:WINDOWS,4.0
/SUBSYSTEM:{NATIVE|WINDOWS|CONSOLE|WINDOWSCE|POSIX}[,#[.##]]
plik wykonywalny dla Windows w wersji >4.0
/entry:start
/ENTRY:symbol
etykieta, od ktorej być rozpoczęte wykonywanie programu,
tzw. punkt wejścia.
%name%
zmienna srodowiskowa.
--
Pozdrawiam
Lopez
Re: Opcje linkera
Author: Bogdan (bogdro)
Date: Mon, 28 Aug 2006 08:33
Date: Mon, 28 Aug 2006 08:33
25 lines
1910 bytes
1910 bytes
Remek napisał(a): > Witam! > > Czy mógłby mnie ktoś poratować wiedzą - co oznaczają opcje > link.exe z Masm32v8: /dll, /vxd - wiadomo, robią bibliotekę DLL i sterownik VxD. /debug* - wiadomo, dodaje symbole debugowania /warn - wiadomo, włącza ostrzeżenia /subsystem - wybiera "typ" programu - GUI czy nie, z grubsza mówiąc /stack, /heap - wiadomo, stos i sterta: ile zarezerwować i ile od razu uruchomić /version - już odpowiedziano /machine - wiadomo, typ procka /libpath - wiadomo, ścieżka do bibliotek Do kilku innych mam przypuszczenia, ale nie będę wprowadzał w błąd. Bo pewnie się okaże, że 'link /?' sam się przyzna. Jak nie ma takiej opcji, to czy może nie ma gdzieś manuala do programu link? -- Pozdrawiam, Bogdan (Linux i FreeDOS) Kurs assemblera x86 (DOS i Linuks): http://rudy.mif.pg.gda.pl/~bogdro Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32 Prawdziwy, bezpieczny komunikator: www.JabberPL.org
Re: Opcje linkera
Author: Remek
Date: Mon, 28 Aug 2006 09:11
Date: Mon, 28 Aug 2006 09:11
15 lines
1405 bytes
1405 bytes
> pewnie się okaże, że 'link /?' sam się przyzna Właśnie to co wkleiłem do posta wyszło z 'link /?'. Przeszukałem helpa od Masm'a i też nie znalazłem. W produktach innych firm ta opcja daje więcej informacji, a w tym przypadku cienko. Oczywiście szukam tej wiedzy wszędzie gdzie możliwe, ale mimo szumnych zapowiedzi wsparcie helpami do Masm32 jest raczej skromne. Są różne problemy, o których już trułem na grupie, ale widocznie niewiele osób Masm'a używa to i odzew niewielki. Pozdrawiam -- Remek
Re: Opcje linkera
Author: Remek
Date: Mon, 28 Aug 2006 09:20
Date: Mon, 28 Aug 2006 09:20
17 lines
1407 bytes
1407 bytes
> poczytaj o budowie i sekcjach plików wykonywalnych pe, > a zrozumiesz działanie większosci opcji. Dzięki za drogowskaz. Poczytam i będę pytał jeśli jeszcze coś będzie niejasne. Pozwolę sobie zadać jeszcze jedno pytanie. Użycie w wywołaniu Ml.exe przełącznika "/Fl" ( z helpa: "/Fl [file] Generate listing" skutkuje generowaniem ogromnego, kilkumegowego listingu, mimo że źródło i sam program są niewielkie ( do 5kB ). Co jest grane? Nie używam w związku z tym tego przełącznika. Pozdrawiam -- Remek
Re: Opcje linkera
Author: Paweł Pawlak
Date: Mon, 28 Aug 2006 18:58
Date: Mon, 28 Aug 2006 18:58
94 lines
4016 bytes
4016 bytes
Dnia 8/28/2006 10:33 AM, Bogdan (bogdro) wrote:
> Remek napisał(a):
>> Witam!
>>
>> Czy mógłby mnie ktoś poratować wiedzą - co oznaczają opcje
>> link.exe z Masm32v8:
>
> /dll, /vxd - wiadomo, robią bibliotekę DLL i sterownik VxD.
> /debug* - wiadomo, dodaje symbole debugowania
> /warn - wiadomo, włącza ostrzeżenia
> /subsystem - wybiera "typ" programu - GUI czy nie, z grubsza mówiąc
> /stack, /heap - wiadomo, stos i sterta: ile zarezerwować i ile od razu
> uruchomić
> /version - już odpowiedziano
> /machine - wiadomo, typ procka
> /libpath - wiadomo, ścieżka do bibliotek
>
> Do kilku innych mam przypuszczenia, ale nie będę wprowadzał w błąd.
> Bo pewnie się okaże, że 'link /?' sam się przyzna. Jak nie ma takiej
> opcji, to czy może nie ma gdzieś manuala do programu link?
>
To może i ja dorzucę...
/ALIGN:#
wyrównanie sekcji (domyślnie 0x200). Jak dasz mniejsze wyrównanie, to
exek może zająć mniej miejsca, ale może być nieuruchamialny w Win9x
(zresztą linker chyba wysyła takie ostrzeżenie).
/DEBUGTYPE:{CV|COFF}
typ informacji dla debuggera (CodeView lub COFF)
/DEF:filename
jak tworzysz DLL-a, to z tego pliku są wczytywane funkcje, które będą
eksportowane (za pomocą tego pliku można również spowodować, że funkcje
będą eksportowane tylko przez indeks, albo z innymi nazwami niż w kodzie)
/MERGE:from=to
służy do łączenia sekcji. Osiągnięty zysk rozmiaru zależy od ilości
sekcji i wyrównania sekcji
/NOENTRY
przydatne chyba tylko przy bibliotekach (DLL). Oznacza, że biblioteka
nie ma funkcji "startowej" uruchamianej po jej załadowaniu.
/NOLOGO
nie wyświetla kopyrajtów linkera
/OUT:filename
określa plik wynikowy (jeśli nie chcesz, aby linker zapisał plik pod
domyślną nazwą)
/SECTION:name,[E][R][W][S][D][K][L][P][X]
określa atrybuty sekcji
/STUB:filename
określa dosową część, która będzie umieszczona przed nagłówkiem PE - o
ile oczywiście masz jakiś własny program i chcesz nim zastąpić
standardowe wyświetlenie napisu "This program must be run under Win32"
czy coś ten deseń
/SWAPRUN:{CD|NET}
Określa, czy exek będzie ładowany z CD czy z zasobu sieciowego. Gdy
tworzysz instalator, który podczas pracy będzie wymagał zmiany płyty,
powinieneś zaznaczyć przy linkowaniu (bądź później), że będzie
uruchamiany z CD - w ten sposób system odczyta exek w całości i uruchomi
go z pliku wymiany.
Jeśli jeszcze chodzi o edycję nagłówka exeka (już po linkowaniu), to
może się przydać opcja /EDIT, czyli np.
link -edit -swaprun:cd mojinstalator.exe
spowoduje, że w nagłówku exeka zostanie zmieniona flaga oznaczająca
sposób uruchamiania.
Do listowania funkcji eksportowanych można użyć opcji -dump -exports, np:
link -dump -exports kernel32.dll
Pozdrawiam,
Morris
Re: Opcje linkera
Author: Remek
Date: Fri, 01 Sep 2006 23:59
Date: Fri, 01 Sep 2006 23:59
6 lines
973 bytes
973 bytes
> To może i ja dorzucę Bardzo dziękuję. To cenne wskazówki. -- Remek
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads