🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.asm
7 messages
7 total messages Started by Remek Mon, 28 Aug 2006 01:37
Opcje linkera
#570
Author: Remek
Date: Mon, 28 Aug 2006 01:37
66 lines
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
#571
Author: Lopez
Date: Mon, 28 Aug 2006 06:45
35 lines
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
#573
Author: Bogdan (bogdro)
Date: Mon, 28 Aug 2006 08:33
25 lines
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
#574
Author: Remek
Date: Mon, 28 Aug 2006 09:11
15 lines
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
#572
Author: Remek
Date: Mon, 28 Aug 2006 09:20
17 lines
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
#575
Author: Paweł Pawlak
Date: Mon, 28 Aug 2006 18:58
94 lines
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
#576
Author: Remek
Date: Fri, 01 Sep 2006 23:59
6 lines
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