Linux / યુનિક્સ કમાન્ડ: Id

NAME

એલડી - એલડી , જીએનયુ લિંકરનો ઉપયોગ કરવો

સમન્વય

ld [ વિકલ્પો ] objfile ...

DESCRIPTION

એલડી સંખ્યાબંધ ઓબ્જેક્ટ અને આર્કાઇવ ફાઇલોને જોડે છે , તેમના ડેટાને સ્થાનાંતરિત કરે છે અને પ્રતીક સંદર્ભો સાથે જોડાણ કરે છે. સામાન્ય રીતે એક કાર્યક્રમ સંકલન કરવાનો છેલ્લો પગલુ એ છે કે ld ચલાવો.

એલડી લિંકિંગ પ્રક્રિયા પર સ્પષ્ટ અને સંપૂર્ણ નિયંત્રણ પ્રદાન કરવા માટે, એટી એન્ડ ટીના લિન્ક એડિટર કમાન્ડ લેન્ગવેજ સિન્ટેક્ષના સુપરસેટમાં લખાયેલ લિંકર કમાન્ડ લેન્ગવેજ ફાઇલોને સ્વીકારે છે.

આ મેન પેજ કમાન્ડ લેંગ્વેજનું વર્ણન કરતું નથી; "માહિતી" માં ld એન્ટ્રી જુઓ, અથવા મેન્યુઅલ ld: GNU linker, આદેશ ભાષા અને જીએનયુ લિંકરના અન્ય પાસાઓ પર સંપૂર્ણ વિગતો માટે.

એલડીનો આ સંસ્કરણ ઓબ્જેક્ટ ફાઇલો પર કામ કરવા માટે સામાન્ય હેતુ BFD પુસ્તકાલયોનો ઉપયોગ કરે છે. આ ld ને ઓબ્જેક્ટ ફાઇલોને વાંચવા, જોડવા અને લખવા માટે પરવાનગી આપે છે - ઉદાહરણ તરીકે, COFF અથવા "a.out" કોઈ પણ પ્રકારની ઉપલબ્ધ ઑબ્જેક્ટ ફાઇલ બનાવવા માટે વિવિધ બંધારણોને એક સાથે લિંક કરી શકાય છે.

તેની લવચિકતા સિવાય, જીએનયુ લિંકર ડાયગ્નોસ્ટિક માહિતી પૂરી પાડવા અન્ય લિંકરો કરતા વધુ ઉપયોગી છે. ઘણા જોડાણકર્તાઓ ભૂલનો સામનો કર્યા પછી તરત જ અમલ છોડી દે છે; જ્યારે પણ શક્ય હોય, ld ચાલુ રહે છે, તમે અન્ય ભૂલોને ઓળખવા માટે પરવાનગી આપી રહ્યા છો (અથવા, કેટલાક કિસ્સાઓમાં, ભૂલ હોવા છતાં આઉટપુટ ફાઇલ મેળવવા).

GNU linker ld એ એક વ્યાપક શ્રેણીની પરિસ્થિતિઓને આવરી લેવા માટે છે, અને અન્ય લિંકરો સાથે શક્ય તેટલી સુસંગત છે. પરિણામે, તમારી વર્તણૂકને નિયંત્રિત કરવા માટે તમારી પાસે ઘણી પસંદગીઓ છે

વિકલ્પો

લિંકર કમાન્ડ-લાઇન વિકલ્પોની વધુ સપોર્ટ કરે છે, પરંતુ વાસ્તવિક પ્રથામાં તેમાંના કેટલાકનો કોઈ ચોક્કસ સંદર્ભમાં ઉપયોગ થાય છે. ઉદાહરણ તરીકે, ld નો વારંવાર ઉપયોગ પ્રમાણભૂત યુનિક્સ ઓબ્જેક્ટ ફાઇલોને સ્ટાન્ડર્ડ, સપોર્ટેડ યુનિક્સ સિસ્ટમ પર લિંક કરવા છે. આવી સિસ્ટમ પર ફાઇલ "hello.o" ને લિંક કરવા.

ld -o /lib/crt0.o hello.o -lc

ld ને "hello.o" અને પુસ્તકાલય "libc.a" સાથે "/lib/crt0.o" ફાઇલને લિંક કરવાના પરિણામે આઉટપુટ તરીકે ઓળખાતી ફાઈલ બનાવવાનું કહે છે, જે પ્રમાણભૂત શોધ ડિરેક્ટરીઓમાંથી આવશે. (નીચે -l વિકલ્પની ચર્ચા જુઓ.)

આદેશ વાક્યમાંના કોઈપણ આદેશ-વાક્ય વિકલ્પોને કોઈપણ બિંદુએ સ્પષ્ટ કરી શકાય છે. જો કે, વિકલ્પો કે જે ફાઈલોનો સંદર્ભ આપે છે, જેમ કે- L અથવા -T , ઓબ્જેક્ટ ફાઇલો અને અન્ય ફાઈલ વિકલ્પોની સરખામણીમાં ફાઇલને આદેશ વાક્ય પર દેખાય છે તે સમયે વાંચવા માટે કારણભૂત છે. અલગ-અલગ દલીલ સાથે બિન-ફાઇલ વિકલ્પોને પુનરાવર્તન કરવામાં આવે તો તે વિકલ્પના કોઈ આગળ કોઈ અસર થતી નથી, અથવા અગાઉની આવૃત્તિઓ (તે પછીના આદેશની ડાબી બાજુએ ડાબી બાજુ) પર ઓવરરાઇડ કરે છે. વિકલ્પો, જે અર્થપૂર્ણ રીતે એકથી વધુ વખત ઉલ્લેખિત થઈ શકે છે, નીચે વર્ણનમાં નોંધાયેલા છે.

નોન-વિકલ્પ દલીલો ઑબ્જેક્ટ ફાઇલો અથવા આર્કાઇવ્સ છે જે એકબીજાની સાથે જોડાયેલા છે. તેઓ આદેશ-વાક્ય વિકલ્પો સાથે અનુસરવા, અનુસરવા અથવા મિશ્રિત કરી શકે છે, સિવાય કે ઑબ્જેક્ટ ફાઇલ દલીલ વિકલ્પ અને તેની દલીલ વચ્ચે મૂકી શકાશે નહીં.

સામાન્ય રીતે લિંકરને ઓછામાં ઓછી એક ઑબ્જેક્ટ ફાઇલ સાથે લાગુ કરવામાં આવે છે, પરંતુ તમે -l , -R અને સ્ક્રિપ્ટ આદેશ ભાષાનો ઉપયોગ કરીને બાઈનરી ઇનપુટ ફાઇલોના અન્ય સ્વરૂપોને સ્પષ્ટ કરી શકો છો. જો બધા પર બાઈનરી ઇનપુટ ફાઇલો નિર્દિષ્ટ નથી, તો લિંકર કોઈપણ આઉટપુટ આપતું નથી, અને કોઈ ઇનપુટ ફાઇલો નથી .

જો લિંકર ઑબ્જેક્ટ ફાઇલના ફોર્મેટને ઓળખી શકતું નથી, તો તે ધારશે કે તે એક લિંકર સ્ક્રિપ્ટ છે. આ રીતે સ્પષ્ટ થયેલ સ્ક્રિપ્ટ લિંક માટે ઉપયોગમાં લેવાતી મુખ્ય લિન્કર સ્ક્રિપ્ટને (ક્યાં તો ડિફૉલ્ટ લિંકર સ્ક્રિપ્ટ અથવા -T નો ઉપયોગ કરીને ઉલ્લેખિત એક) ઉમેરે છે . આ લક્ષણ લિન્કરને એવી ફાઇલ સામે લિંક કરવાની પરવાનગી આપે છે જે ઑબ્જેક્ટ અથવા આર્કાઇવ હોય તેવું લાગે છે, પરંતુ વાસ્તવમાં ફક્ત કેટલાક પ્રતીક મૂલ્યો વ્યાખ્યાયિત કરે છે, અથવા અન્ય વસ્તુઓને લોડ કરવા માટે "INPUT" અથવા "GROUP" નો ઉપયોગ કરે છે. નોંધ કરો કે આ રીતે સ્ક્રિપ્ટ સ્પષ્ટ કરવાથી મુખ્ય લિન્કર સ્ક્રિપ્ટ વધારી શકાય છે; મૂળભૂત linker સ્ક્રિપ્ટને સંપૂર્ણપણે બદલવા માટે -T વિકલ્પનો ઉપયોગ કરો.

એવા વિકલ્પો માટે કે જેમના નામો એક જ અક્ષર છે, વિકલ્પ દલીલો ક્યાં તો વ્હાઇટપેસેસને હસ્તક્ષેપ કર્યા વિના વિકલ્પ પત્રનું પાલન કરવું જોઈએ અથવા તેમને જરૂરી એવા વિકલ્પને તરત જ અલગ દલીલો તરીકે આપવામાં આવશે.

એવા વિકલ્પો માટે કે જેના નામો બહુવિધ અક્ષરો છે, ક્યાં તો એક આડંબર અથવા બે વિકલ્પ નામથી આગળ થઈ શકે છે; ઉદાહરણ તરીકે, -trace-symbol અને --trace-symbol સમાન છે. નોંધ - આ નિયમ માટે એક અપવાદ છે મલ્ટીપલ લેટર ઓપ્શન્સ કે જે લોઅર કેસ 'ઓ' થી શરૂ થાય છે તે ફક્ત બે ડેશ દ્વારા જ થઈ શકે છે. આ -ઓ વિકલ્પ સાથે ગૂંચવણ ઘટાડવાનું છે. તેથી ઉદાહરણ તરીકે- ઓમેજિક આઉટપુટ ફાઈલ નામને જાદુમાં સેટ કરે છે, જ્યારે -omagic એ આઉટપુટ પર NMAGIC ફ્લેગ સુયોજિત કરે છે.

મલ્ટિપલ-લેટરના વિકલ્પોમાં દલીલો ક્યાંતો સમકક્ષ ચિહ્ન દ્વારા વિકલ્પ નામને અલગ પાડવામાં આવવી જોઈએ અથવા તેમને જરૂરી એવા વિકલ્પને તરત જ અલગ દલીલો તરીકે આપવામાં આવશે. ઉદાહરણ તરીકે, --trace-symbol foo અને --trace-symbol = foo સમકક્ષ છે. મલ્ટિપલ-લેટર વિકલ્પોના નામોની અનન્ય સંક્ષિપ્ત રૂપરેખાઓ સ્વીકારવામાં આવે છે.

નોંધ - જો લિંકરને આડકતરી રીતે આક્રમણ કરવામાં આવે છે, કમ્પાઇલર ડ્રાઇવર (દા.ત. જીસીસી ) મારફતે પછી તમામ કડી કરનાર આદેશ વાક્ય વિકલ્પો -Wl, (અથવા ચોક્કસ કમ્પાઇલર ડ્રાઇવર માટે યોગ્ય છે) દ્વારા પ્રિફિક્સ થવો જોઈએ જેમ કે:

જીસીસી-ડબલ્યુ, - શરૂઆત ગ્રુપ foo.o bar.o -Wl, - એન્ડગુપ

આ અગત્યનું છે, કારણ કે અન્યથા કમ્પાઇલર ડ્રાઇવર પ્રોગ્રામ શાંતિપૂર્વક લિંકર વિકલ્પોને છોડશે, જેના પરિણામે ખરાબ કડી થશે.

અહીં GNU linker દ્વારા સ્વીકારવામાં આવેલ સામાન્ય કમાન્ડ લાઇન સ્વિચનો ટેબલ છે:

-એક મુખ્ય શબ્દ

આ વિકલ્પ HP / UX સુસંગતતા માટે સપોર્ટેડ છે. કીવર્ડ દલીલ શબ્દમાળાઓ આર્કાઇવ , વહેંચાયેલ અથવા ડિફૉલ્ટમાંની એક હોવી જોઈએ. -કાર્કાઇવ વિધેયાત્મક રીતે સમકક્ષ છે - વિશિષ્ટ , અને અન્ય બે કીવર્ડ્સ વિધેયાત્મક રીતે સમકક્ષ છે - બૅડનેમિક આ વિકલ્પનો ઉપયોગ કોઈપણ સમયે થઈ શકે છે.

- એક સ્થાપત્ય

--architecture = આર્કીટેક્ચર

એલડીના વર્તમાન પ્રકાશનમાં, આ વિકલ્પ ફક્ત આર્કિટેકચરના ઇન્ટેલ 960 કુટુંબ માટે જ ઉપયોગી છે. તે ld રૂપરેખાંકનમાં, આર્કીટેક્ચર દલીલ 960 કુટુંબમાં ચોક્કસ આર્કીટેક્ચરને ઓળખે છે, કેટલાક રક્ષણોને સક્રિય કરે છે અને આર્કાઇવ-લાઇબ્રેરી શોધ પાથને સંશોધિત કરે છે.

એલડીના ભાવિ પ્રકાશનો અન્ય આર્કિટેક્ચર પરિવારો માટે સમાન કાર્યક્ષમતાને ટેકો આપે છે.

-b ઇનપુટ-ફોર્મેટ

--format = input-format

ld ને એકથી વધુ પ્રકારની ઑબ્જેક્ટ ફાઇલને સપોર્ટ કરવા માટે ગોઠવી શકાય છે. જો તમારા ld આ રીતે રૂપરેખાંકિત થયેલ છે, તો તમે ઇનપુટ ઑબ્જેક્ટ ફાઇલો માટે બાઈનરી ફોર્મેટને સ્પષ્ટ કરવા માટે -b વિકલ્પનો ઉપયોગ કરી શકો છો કે જે આ વિકલ્પને આદેશ વાક્ય પર અનુસરો. જ્યારે પણ ld વૈકલ્પિક ઑબ્જેક્ટ ફોર્મેટ્સને સપોર્ટેડ કરવા માટે ગોઠવવામાં આવે છે, તો તમારે સામાન્ય રીતે આને સ્પષ્ટ કરવાની જરૂર નથી, કારણ કે LD ને મૂળભૂત ઈનપુટ ફોર્મેટ તરીકે અપેક્ષા રાખવામાં આવવી જોઈએ. ઇનપુટ-ફોર્મેટ એ ટેક્સ્ટ સ્ટ્રિંગ છે, જે બીએફડી પુસ્તકાલયો દ્વારા સપોર્ટેડ ચોક્કસ ફોર્મેટનું નામ છે. (તમે objdump -i સાથે ઉપલબ્ધ બાઈનરી સ્વરૂપોની સૂચિબદ્ધ કરી શકો છો.)

તમે આ વિકલ્પનો ઉપયોગ કરવા માગી શકો છો જો તમે અસામાન્ય બાઈનરી ફોર્મેટ સાથે ફાઇલોને લિંક કરી રહ્યાં છો. તમે ચોક્કસ ફોર્મેટમાં ઓબ્જેક્ટ ફાઇલોના દરેક જૂથ પહેલાં -b ઇનપુટ-ફોર્મેટનો સમાવેશ કરીને, અલગ-અલગ ફોર્મેટમાં ઓબ્જેક્ટ ફાઇલોને લિંક કરતી વખતે સ્પષ્ટ રૂપે સ્વિચ કરવા માટે -b નો ઉપયોગ કરી શકો છો.

ડિફૉલ્ટ ફોર્મેટને પર્યાવરણ ચલ "GNUTARGET" માંથી લેવામાં આવે છે.

તમે "TARGET" આદેશનો ઉપયોગ કરીને સ્ક્રિપ્ટમાંથી ઇનપુટ ફોર્મેટને પણ વ્યાખ્યાયિત કરી શકો છો;

-સી એમઆરઆઈ-કમાન્ડફાઇલ

--મ્રી-સ્ક્રિપ્ટ = એમઆરઆઈ-કમાન્ડફાઇલ

એમઆરઆઈ દ્વારા ઉત્પાદિત લીંકરો સાથે સુસંગતતા માટે, ld વૈકલ્પિક, પ્રતિબંધિત આદેશ ભાષામાં લખાયેલ સ્ક્રિપ્ટ ફાઇલો સ્વીકારે છે, જે GNU ld દસ્તાવેજીકરણના એમઆરઆઈ સુસંગત સ્ક્રિપ્ટ ફાઇલ્સ વિભાગમાં વર્ણવેલ છે. વિકલ્પ- c સાથે MRI સ્ક્રિપ્ટ ફાઇલો દાખલ કરો; સામાન્ય હેતુવાળી લેડી સ્ક્રિપ્ટીંગ ભાષામાં લખેલા લિન્કર સ્ક્રિપ્ટ્સને ચલાવવા માટે -T વિકલ્પનો ઉપયોગ કરો. જો એમઆરઆઈ- cmdfile અસ્તિત્વમાં નથી, તો ld તેના માટે કોઈપણ- એલ વિકલ્પો દ્વારા નિર્દિષ્ટ કરાયેલ ડિરેક્ટરીઓ માટે જુએ છે.

-ડી

-ડીસી

-dp

આ ત્રણ વિકલ્પો સમકક્ષ છે; બહુવિધ સ્વરૂપો અન્ય લિંકરો સાથે સુસંગતતા માટે આધારભૂત છે તેઓ સામાન્ય પ્રતીક માટે જગ્યા સોંપો કરે છે, ભલેને પુન: સ્થાનાંતરણ આઉટપુટ ફાઇલ ( -આર ) સાથે સ્પષ્ટ થયેલ હોય. સ્ક્રિપ્ટ આદેશ "FORCE_COMMON_ALLOCATION" સમાન અસર ધરાવે છે.

-e પ્રવેશ

--entry = પ્રવેશ

ડિફૉલ્ટ એન્ટ્રી પોઇન્ટને બદલે, તમારા પ્રોગ્રામના અમલીકરણ માટે સ્પષ્ટ પ્રતીક તરીકે એન્ટ્રીનો ઉપયોગ કરો. જો ત્યાં કોઈ પ્રતીક નામ આપવામાં આવતું નથી, તો લિન્કર નંબર તરીકે પ્રવેશને વિશ્લેષિત કરવાનો પ્રયત્ન કરશે, અને તેનો ઉપયોગ પ્રવેશ સરનામા તરીકે કરશે (સંખ્યાને આધાર 10 માં અર્થઘટન કરવામાં આવશે; તમે 16 આધાર માટે અગ્રણી 0x નો ઉપયોગ કરી શકો છો, અથવા અગ્રણી 0 આધાર માટે 8).

-ઇ

- નિકાસ-ગતિશીલ

ડાયનેમિકલી લિંક કરેલ એક્ઝેક્યુટેબલ બનાવતી વખતે, ડાયનેમિક સિમ્બોલ કોષ્ટકમાં બધા પ્રતીકો ઉમેરો. ડાયનેમિક સિમ્બોલ ટેબલ એ પ્રતીકોનો સમૂહ છે જે રન ટાઇમમાં ગતિશીલ ઓબ્જેક્ટોથી દ્રશ્યમાન થાય છે.

જો તમે આ વિકલ્પનો ઉપયોગ કરતા નથી, તો ડાયનેમિક સિમ્બોલ કોષ્ટક સામાન્ય રીતે ફક્ત તે પ્રતીકોને સમાવશે જે લિંકમાં ઉલ્લેખિત કેટલાક ગતિશીલ ઑબ્જેક્ટ દ્વારા સંદર્ભિત છે.

જો તમે ગતિશીલ ઑબ્જેક્ટને લોડ કરવા માટે "ડ્લોન" નો ઉપયોગ કરો છો જે પ્રોગ્રામ દ્વારા નિર્ધારિત પ્રતીકોના સંદર્ભમાં પાછા બીજા કોઈ ગતિશીલ ઑબ્જેક્ટની જગ્યાએ સંદર્ભિત કરવાની જરૂર છે, તો પછી તમારે આ વિકલ્પનો ઉપયોગ કરવાની જરૂર પડશે જ્યારે કાર્યક્રમ પોતે જોડશે

જો તમે આઉટપુટ ફોર્મેટ તેને સપોર્ટ કરે તો, ડાયનેમિક સિમ્બોલ કોષ્ટકમાં કયા પ્રતીકો ઉમેરતા હોવા જોઈએ તે નિયંત્રિત કરવા માટે તમે આવૃત્તિ સ્ક્રિપ્ટનો ઉપયોગ કરી શકો છો. @ રેફ {VERSION} માં વિવર-સ્ક્રિપ્ટનું વર્ણન જુઓ.

-ઇબી

મોટા-એન્ડિયન ઓબ્જેક્ટ્સને લિંક કરો આ મૂળભૂત આઉટપુટ ફોર્મેટને અસર કરે છે.

-EL

થોડી એન્ડિયન ઓબ્જેક્ટ્સને લિંક કરો આ મૂળભૂત આઉટપુટ ફોર્મેટને અસર કરે છે.

-એફ

- ઓક્સિલોરી નામ

એક ELF શેર કરેલો ઓબ્જેક્ટ બનાવતી વખતે, આંતરિક DT_AUXILIARY ફીલ્ડને સ્પષ્ટ કરેલ નામ પર સેટ કરો. આ ગતિશીલ લિંકરને કહે છે કે વહેંચાયેલ ઑબ્જેક્ટના પ્રતીક કોષ્ટકને શેર્ડ ઑબ્જેક્ટ નામના પ્રતીક કોષ્ટક પર સહાયક ફિલ્ટર તરીકે ઉપયોગ કરવો જોઈએ.

જો તમે પછીથી આ ફિલ્ટર ઑબ્જેક્ટ સામે કોઈ પ્રોગ્રામને લિંક કરો છો, તો પછી, જ્યારે તમે પ્રોગ્રામ ચલાવો છો, ત્યારે ગતિશીલ લિંકરને DT_AUXILIARY ફીલ્ડ દેખાશે. જો ડાયનેમિક લિંકર ફિલ્ટર ઓબ્જેક્ટમાંથી કોઈપણ પ્રતીકોને સુધારે છે, તો તે પ્રથમ તપાસ કરશે કે શેર્ડ ઓબ્જેક્ટ નામમાં કોઈ વ્યાખ્યા છે. જો ત્યાં એક છે, તો તેનો ઉપયોગ ફિલ્ટર ઑબ્જેક્ટની વ્યાખ્યાની જગ્યાએ થશે. શેર્ડ ઑબ્જેક્ટ નામની જરૂર નથી. આમ, શેર્ડ ઑબ્જેક્ટ નામનો ઉપયોગ અમુક કાર્યોનું વૈકલ્પિક અમલીકરણ પૂરું પાડવા માટે થઈ શકે છે, ડિબગીંગ માટે અથવા મશીન વિશિષ્ટ કામગીરી માટે.

આ વિકલ્પ એકથી વધુ વાર સ્પષ્ટ થઈ શકે છે. DT_AUXILARYARY એન્ટ્રીઓ ક્રમમાં બનાવેલ હશે જેમાં તેઓ આદેશ વાક્ય પર દેખાય છે.

-F નામ

--ફિલ્ટર નામ

એક ELF શેર કરેલો ઑબ્જેક્ટ બનાવતી વખતે, આંતરિક DT_FILTER ફીલ્ડને વિશિષ્ટ નામ પર સેટ કરો. આ ગતિશીલ લિંકરને કહે છે કે વહેંચાયેલ ઑબ્જેક્ટનું પ્રતીક કોષ્ટક જે ઑબ્જેક્ટ થઈ રહ્યું છે તે શેર્ડ ઓબ્જેક્ટ નામના પ્રતીક ટેબલ પર એક ફિલ્ટર તરીકે વપરાવું જોઈએ.

જો તમે પછીથી આ ફિલ્ટર ઑબ્જેક્ટ સામે કોઈ પ્રોગ્રામને લિંક કરો છો, તો પછી, જ્યારે તમે પ્રોગ્રામ ચલાવો છો, ત્યારે ગતિશીલ લિંકરને DT_FILTER ફીલ્ડ દેખાશે. ડાયનેમિક લિંકર સામાન્ય રીતે ફિલ્ટર ઓબ્જેક્ટના પ્રતીક કોષ્ટક મુજબ પ્રતીકોને ઉકેલશે, પરંતુ તે વાસ્તવમાં શેર્ડ ઑબ્જેક્ટ નામમાં મળેલી વ્યાખ્યાઓ સાથે લિંક કરશે. આમ ઑબ્જેક્ટ નામ દ્વારા પ્રદાન કરેલા પ્રતીકોના ઉપગણને પસંદ કરવા માટે ફિલ્ટર ઑબ્જેક્ટનો ઉપયોગ કરી શકાય છે.

કેટલાક જૂના લીંકરોએ ઇનપુટ અને આઉટપુટ ઑબ્જેક્ટ ફાઇલો માટે ઓબ્જેક્ટ-ફોર્મેટ ફોર્મેટને નિર્દિષ્ટ કરવા માટે કમ્પાઇલિશન ટૂલચેન દરમિયાન -F વિકલ્પનો ઉપયોગ કર્યો હતો. GNU linker આ હેતુ માટે અન્ય પદ્ધતિઓનો ઉપયોગ કરે છે: -b , --format , --oformat વિકલ્પો, લિંકર સ્ક્રિપ્ટ્સમાં "TARGET" આદેશ અને "GNUTARGET" પર્યાવરણ ચલ. જ્યારે કોઈ ELF શેર કરેલો ઑબ્જેક્ટ ન બનાવો ત્યારે GNU linker -F વિકલ્પને અવગણશે.

-ફિનિ નામ

એક ELF એક્ઝેક્યુટેબલ અથવા શેર્ડ ઑબ્જેક્ટ બનાવતી વખતે, કાર્યાલયના સરનામાં પર DT_FINI સેટ કરીને એક્ઝેક્યુટેબલ અથવા શેર્ડ ઓબ્જેક્ટ અનલોડ કરવામાં આવે ત્યારે NAME ને કૉલ કરો. ડિફૉલ્ટ રૂપે, લિંકર કૉલ કરવા માટે કાર્ય તરીકે "_fini" નો ઉપયોગ કરે છે.

-જી

અવગણવામાં અન્ય સાધનો સાથે સુસંગતતા માટે પ્રદાન.

-જી મૂલ્ય

--gpsize = મૂલ્ય

જી.પી.ના રીપોર્ટનો ઉપયોગ કરીને ઓપ્ટિમાઇઝ કરવા માટે વસ્તુઓનું મહત્તમ કદ સેટ કરો. આ ફક્ત એમઆઇએફએસ ઈકોફએફ જેવા ઑબ્જેક્ટ ફાઇલ ફોર્મેટ માટે જ અર્થપૂર્ણ છે, જે વિવિધ વિભાગોમાં મોટી અને નાની વસ્તુઓને મૂકવા માટે આધાર આપે છે. આ અન્ય ઑબ્જેક્ટ ફાઇલ ફોરમેટ માટે અવગણવામાં આવે છે.

-હ નામ

-સોમમ = નામ

જ્યારે એક ELF શેર કરેલો ઓબ્જેક્ટ બનાવવો, ત્યારે આંતરિક DT_SONAME ક્ષેત્રને સ્પષ્ટ કરેલ નામ પર સેટ કરો. જ્યારે એક્ઝેક્યુટેબલ શેર કરેલી ઑબ્જેક્ટ સાથે સંકળાયેલું હોય છે જે DT_SONAME ફિલ્ડ ધરાવે છે, ત્યારે જ્યારે એક્ઝેક્યુટેબલ ચલાવવામાં આવે ત્યારે ગતિશીલ લિંકર લિંકરને આપવામાં આવેલ ફાઇલ નામનો ઉપયોગ કરતા, DT_SONAME ફીલ્ડ દ્વારા નિર્દિષ્ટ કરેલ શેર કરેલ ઑબ્જેક્ટને લોડ કરવાનો પ્રયાસ કરશે.

-i

વધતી લિંક કરો (વિકલ્પ -આર તરીકે જ).

-નામ નામ

એક ELF એક્ઝેક્યુટેબલ અથવા વહેંચાયેલ ઓબ્જેક્ટ બનાવતી વખતે, કાર્યાલયના સરનામાં પર DT_INIT ને સેટ કરીને એક્ઝેક્યુટેબલ અથવા શેર્ડ ઑબ્જેક્ટ લોડ થાય ત્યારે NAME ને કૉલ કરો. ડિફૉલ્ટ રૂપે, લિંક કરનાર કૉલ કરવાના કાર્ય તરીકે "_init" નો ઉપયોગ કરે છે.

-l આર્કાઇવ

--library = archive

લિંક કરવા ફાઇલોની સૂચિમાં આર્કાઇવ ફાઇલ આર્કાઇવ ઉમેરો. આ વિકલ્પનો ઉપયોગ કોઈપણ સમયે થઈ શકે છે. ld સ્પષ્ટ થયેલ દરેક પેટી માટે "libarchive.a" ની ઘટનાઓ માટે તેની પાથ-સૂચિ શોધશે.

વહેંચાયેલ લાઈબ્રેરીઓનો આધાર ધરાવતી સિસ્ટમો પર, ld ".a" સિવાયના એક્સ્ટેન્શન્સ સાથે લાઇબ્રેરીઓ શોધી શકે છે. ખાસ કરીને, ELF અને સનૉસ સિસ્ટમ્સ પર, ". A" ના વિસ્તરણ સાથેના એકને શોધવા પહેલાં ".so" ના વિસ્તરણ સાથે, ld પુસ્તકાલય માટે ડિરેક્ટરી શોધશે. સંમેલનમાં, ".so" વિસ્તરણ શેર કરેલ પુસ્તકાલયને સૂચવે છે.

લિંકર આર્કાઇવને માત્ર એક જ વાર શોધશે, જ્યાં તે આદેશ વાક્ય પર સ્પષ્ટ થયેલ છે. જો આર્કાઇવ એક પ્રતીકને વ્યાખ્યાયિત કરે છે જે કોઈ ઑબ્જેક્ટમાં અવ્યાખ્યાયિત હતી જે આર્કાઇવ પહેલા આદેશ વાક્ય પર દેખાઇ હતી, તો લિંકર આર્કાઇવમાંથી યોગ્ય ફાઇલ (ઓ) નો સમાવેશ કરશે જોકે, આદેશ વાક્ય પર દેખાતા ઑબ્જેક્ટમાં એક અવ્યાખ્યાયિત પ્રતીક લિંકને ફરીથી આર્કાઇવ શોધવાનું કારણ બનશે નહીં.

- (- ઘણી વખત આર્કાઇવ્સ શોધવા માટે લિંકર પર દબાણ કરવા માટેના એક માર્ગ માટેનો વિકલ્પ જુઓ

તમે કમાન્ડ લાઇન પર સમાન આર્કાઇવને ઘણી વખત સૂચિબદ્ધ કરી શકો છો.

આ પ્રકારની આર્કાઇવ શોધ એ યુનિક્સ લિંકર્સ માટે પ્રમાણભૂત છે. જો કે, જો તમે ld onAIX વાપરી રહ્યા હોય, તો નોંધ લો કે તે AIX linker ની વર્તણૂકથી અલગ છે.

-L શોધડિર

--libre-path = searchdir

પાથ searchdir ને પાથોની યાદીમાં ઉમેરો કે જે ld આર્કાઇવ લાઇબ્રેરીઓ અને ld નિયંત્રણ સ્ક્રિપ્ટો માટે શોધ કરશે. તમે કોઈપણ સમયે આ વિકલ્પનો ઉપયોગ કરી શકો છો. ડિરેક્ટરીઓ ક્રમમાં શોધી કાઢવામાં આવે છે જેમાં તેઓ આદેશ વાક્ય પર સ્પષ્ટ થયેલ છે. આદેશ વાક્ય પર સ્પષ્ટ થયેલ ડિરેક્ટરીઓ ડિફૉલ્ટ ડિરેક્ટરીઓ પહેલાં શોધાયેલ છે. ઓલ- એલ વિકલ્પો ઓલ- એલ વિકલ્પોને લાગુ પડે છે, ઓર્ડર કયા વિકલ્પોમાં દેખાય છે તે ધ્યાનમાં લીધા વગર.

જો searchdir "=" થી શરૂ થાય છે, તો "=" એ sysroot ઉપસર્ગ દ્વારા બદલવામાં આવશે, જ્યારે લિંકર ગોઠવવામાં આવે ત્યારે ઉલ્લેખિત પાથ.

શોધાયેલ પાથનો મૂળભૂત સમૂહ ( -L સાથે સ્પષ્ટ થયેલ વગર) એ આધાર રાખે છે કે કયા ઈમ્યુલેશન સ્થિતિ ld એ ઉપયોગ કરે છે, અને અમુક કિસ્સાઓમાં તે કેવી રીતે રૂપરેખાંકિત થયેલ છે તેના પર પણ છે.

"SEARCH_DIR" આદેશ સાથે લિંક સ્ક્રિપ્ટમાં પાથો પણ ઉલ્લેખિત કરી શકાય છે. ડિરેક્ટરીઓએ આ રીતે ઉલ્લેખ કર્યો છે તે સમયે તે શોધવામાં આવે છે જેમાં લિંકર સ્ક્રિપ્ટ આદેશ વાક્યમાં દેખાય છે.

-એમ અનુકરણ

અનુકરણ લિંકરનું અનુકરણ કરો તમે --verbose અથવા -V વિકલ્પો સાથે ઉપલબ્ધ ઇમ્યુલેશન્સને સૂચિબદ્ધ કરી શકો છો.

જો -m વિકલ્પ વાપરવામાં ન આવે તો, ઈમ્યુલેશન "LDEMULATION" પર્યાવરણ ચલમાંથી લેવામાં આવે છે, જો તે વ્યાખ્યાયિત થયેલ છે.

નહિંતર, ડિફૉલ્ટ ઇમ્યુલેશન એ લિંકરને કેવી રીતે ગોઠવ્યું હતું તે પર આધારિત છે.

-એમ

- પ્રિન્ટ-નકશો

સ્ટાન્ડર્ડ આઉટપુટ પર એક લિંક નકશો છાપો. એક લિંક નકશો નીચેની સહિત, લિંક વિશે માહિતી પૂરી પાડે છે:

*

જ્યાં ઑબ્જેક્ટ ફાઇલો અને પ્રતીકો મેમરીમાં મેપ થયેલ છે.

*

કેવી રીતે સામાન્ય પ્રતીકો ફાળવવામાં આવે છે

*

બધા આર્કાઇવ સભ્યોને લિંકમાં શામેલ કરવામાં આવ્યા છે, જેમાં પ્રતીકનો ઉલ્લેખ કરવામાં આવ્યો છે જેના કારણે આર્કાઇવ સભ્યને લાવવામાં આવે છે.

-ના

--nmagic

પૃષ્ઠોની સંરેખણને બંધ કરો અને શક્ય હોય તો આઉટપુટને "NMAGIC" તરીકે માર્ક કરો.

-ન

- આયમાજિક

વાંચવાયોગ્ય અને લખી શકાય તેવું ટેક્સ્ટ અને ડેટા વિભાગો સેટ કરો ઉપરાંત, ડેટા સેગમેન્ટને પાનું-અલાઈન કરશો નહીં, અને વહેંચાયેલ લાઈબ્રેરીઓ સામે લિંકને અક્ષમ કરો. જો આઉટપુટ ફોર્મેટ યુનિક્સ શૈલી મેજિક નંબરોને સપોર્ટ કરે છે, તો "OMAGIC" તરીકે આઉટપુટને ચિહ્નિત કરો.

- ના-ઓમેજિક

આ વિકલ્પ- N વિકલ્પની મોટાભાગની અસરોને નકારે છે . તે ફક્ત વાંચવા માટેની ટેક્સ્ટ વિભાગને સેટ કરે છે અને ડેટા સેગમેન્ટને પેજ-સંરેખિત કરવા માટે દબાણ કરે છે. નોંધ - આ વિકલ્પ શેર્ડ લાઇબ્રેરીઓ સાથે લિંક કરવાનું સક્ષમ કરતું નથી. આ માટે - ગતિશીલ વાપરો.

-ઓ આઉટપુટ

--output = આઉટપુટ

Ld દ્વારા ઉત્પાદિત પ્રોગ્રામના નામ તરીકે આઉટપુટનો ઉપયોગ કરો; જો આ વિકલ્પ સ્પષ્ટ નથી, તો નામ a.out એ મૂળભૂત રીતે વપરાય છે. સ્ક્રિપ્ટ આદેશ "OUTPUT" પણ આઉટપુટ ફાઈલ નામ સ્પષ્ટ કરી શકે છે.

-ઓ સ્તર

જો સ્તરસંખ્યાત્મક મૂલ્યો છે કે જે શૂન્ય કરતાં વધારે હોય તો ld આઉટપુટને શ્રેષ્ઠ બનાવે છે. આ નોંધપાત્ર રીતે લાંબુ લાગી શકે છે અને તેથી કદાચ ફક્ત અંતિમ બાઈનરી માટે જ સક્ષમ થવું જોઈએ.

-ક

--emit-relocs

સંપૂર્ણપણે સંકળાયેલા એક્ઝેકટેબલ્સમાં સ્થળાંતર વિભાગો અને વિષયવસ્તુ છોડો. પોસ્ટ લિંક વિશ્લેષણ અને ઑપ્ટિમાઇઝેશન સાધનોને એક્ઝેક્યુટેબલ્સના યોગ્ય ફેરફારો કરવા માટે આ માહિતીની જરૂર પડી શકે છે. આ મોટું એક્ઝેક્યુટેબલ થાય છે.

આ વિકલ્પ હાલમાં ફક્ત ELF પ્લેટફોર્મ પર સપોર્ટેડ છે.

-આર

- ભરવાપાત્ર

પુનઃસ્થાપના આઉટપુટ પેદા કરે છે - એટલે કે, આઉટપુટ ફાઇલ બનાવો જે બદલામાં ld ને ઇનપુટ તરીકે સેવા આપી શકે છે. આને ઘણીવાર આંશિક લિંક કરવાનું કહેવામાં આવે છે. બાજુ અસર તરીકે, પ્રમાણભૂત યુનિક્સ જાદુ નંબરોને સપોર્ટ કરે તેવા વાતાવરણમાં, આ વિકલ્પ આઉટપુટ ફાઇલની મેજિક સંખ્યાને "ઓમેગિક" તરીકે પણ સુયોજિત કરે છે. જો આ વિકલ્પ સ્પષ્ટ કરેલ નથી, તો એક નિરપેક્ષ ફાઇલ ઉત્પન્ન થાય છે. C ++ પ્રોગ્રામ્સને લિંક કરતી વખતે, આ વિકલ્પ કન્સ્ટ્રકટર્સના સંદર્ભોને નિશ્ચિત કરશે નહીં ; તે કરવા માટે, ઉપયોગ કરો - યુઆર

ઇનપુટ ફાઇલમાં આઉટપુટ ફાઇલ તરીકે સમાન ફોર્મેટ ન હોય ત્યારે, આંશિક લિંકિંગ માત્ર ત્યારે જ સપોર્ટેડ હોય છે જો તે ઇનપુટ ફાઇલમાં કોઈપણ રીલોકેશન નથી. જુદા જુદા આઉટપુટ ફોર્મેટમાં વધુ નિયંત્રણો હોઈ શકે છે; ઉદાહરણ તરીકે, કેટલાક "a.out" -આધારિત બંધારણો ઇનપુટ ફાઇલો સાથે અન્ય ફોર્મેટમાં આંશિક લિંકને સપોર્ટ કરતા નથી.

આ વિકલ્પ એ જ વસ્તુને -i તરીકે કરે છે

-આર ફાઇલનામ

--just-symbols = ફાઇલનામ

ફાઇલ નામોથી પ્રતીક નામો અને તેમના સરનામાંઓ વાંચો, પરંતુ તેને પુનઃસ્થાપિત કરશો નહીં અથવા તેને આઉટપુટમાં શામેલ કરશો નહીં. આ તમારી આઉટપુટ ફાઈલને અન્ય પ્રોગ્રામમાં વ્યાખ્યાયિત મેમરીના નિરપેક્ષ સ્થાનોને સાંકેતિક રીતે સંદર્ભિત કરવાની મંજૂરી આપે છે. તમે એકથી વધુ વાર આ વિકલ્પનો ઉપયોગ કરી શકો છો.

અન્ય ELF લિંક્ડકો સાથે સુસંગતતા માટે, જો -આર વિકલ્પ એ ડિરેક્ટરી નામ દ્વારા અનુસરવામાં આવે છે, ફાઇલના નામની જગ્યાએ, તેને -rpath વિકલ્પ તરીકે ગણવામાં આવે છે.

-s

--સ્ટ્રિપ-બધા

આઉટપુટ ફાઈલમાંથી બધી પ્રતીક માહિતીને બહાર કાઢો.

-એસ

--સ્ટ્રિપ-ડીબગ

આઉટપુટ ફાઇલમાંથી ડીબગર પ્રતીક માહિતીને (પરંતુ બધા પ્રતીકો નહીં) અવગણો.

-ટી

--trace

ઈનપુટ ફાઇલોના નામ છાપો તરીકે તેમને ld પ્રક્રિયાઓ.

-ટી સ્ક્રિપ્ટફાઇલ

--script = scriptfile

લિન્કર સ્ક્રિપ્ટ તરીકે સ્ક્રિપ્ટફાઇલનો ઉપયોગ કરો. આ સ્ક્રિપ્ટ લિડની ડિફૉલ્ટ લિંકર સ્ક્રિપ્ટ બદલે છે (તેને ઉમેરવા કરતાં), તેથી કમાન્ડફાઇલ એ આઉટપુટ ફાઇલનું વર્ણન કરવા માટે જરૂરી બધું જ સ્પષ્ટ કરવું પડશે. જો સ્ક્રિપ્ટફાઇલ વર્તમાન ડિરેક્ટરીમાં અસ્તિત્વમાં ન હોય તો, "ld" તે પહેલાંના- એલ વિકલ્પો દ્વારા નિર્દિષ્ટ કરાયેલ ડિરેક્ટરીઓ માટે જુએ છે. મલ્ટિપલ- ટી વિકલ્પો એકઠા કરે છે.

-યુ પ્રતીક

- નિર્ધારિત = પ્રતીક

બિનપ્રકાશિત પ્રતીક તરીકે આઉટપુટ ફાઇલમાં દાખલ થવા માટે દબાણ ચિહ્ન. આ કરવાથી, ઉદાહરણ તરીકે, પ્રમાણભૂત લાઈબ્રેરીઓમાંથી વધારાના મોડ્યુલ્સને જોડવાનું ટ્રીગર કરી શકાય છે. -u ને વધારાનું અવ્યાખ્યાયિત પ્રતીકો દાખલ કરવા માટે વિવિધ વિકલ્પ દલીલો સાથે પુનરાવર્તન થઈ શકે છે. આ વિકલ્પ "EXTERN" લિંકર સ્ક્રિપ્ટ આદેશની સમકક્ષ છે.

-ઉર

C ++ પ્રોગ્રામ્સ સિવાય અન્ય કંઈપણ માટે, આ વિકલ્પ -r ની સમકક્ષ છે: તે નિર્વિવાદ આઉટપુટને ઉત્પન્ન કરે છે - એટલે કે, એક આઉટપુટ ફાઇલ જે બદલામાં ld ને ઇનપુટ તરીકે સેવા આપી શકે છે. C ++ પ્રોગ્રામ્સને લિંક કરતી વખતે -Ur , કન્ટ્રક્ટર્સ માટે સંદર્ભોનું ઉકેલો કરતું નથી , વિપરીત- r તે ઉપયોગ કરવા માટે કામ કરતું નથી -ઉપરની ફાઈલો કે જે પોતાને -યુઆર સાથે જોડાયેલા હતા; એકવાર કન્સ્ટ્રક્ટર ટેબલ બનાવવામાં આવ્યું છે, તે તેમાં ઉમેરી શકાશે નહીં. ઉપયોગ કરો- માત્ર છેલ્લા આંશિક લિંક માટે, અને -અન્ય લોકો માટે.

--unique [= SECTION ]

પ્રત્યેક અનાથ ઇનપુટ વિભાગ માટે, દરેક ઇનપુટ વિભાગ, SECTION થી મેળ ખાતી અલગ અલગ આઉટપુટ વિભાગ અથવા જો વૈકલ્પિક વાઇલ્ડકાર્ડ સેક્શન દલીલ ખૂટે છે. એક અનાથ વિભાગ એક લિંકર સ્ક્રિપ્ટમાં ઉલ્લેખિત નથી. તમે આદેશ વાક્ય પર આ વિકલ્પને ઘણી વખત વાપરી શકો છો; તે એક જ નામથી ઇનપુટ વિભાગોનાં સામાન્ય મર્જીંગને અટકાવે છે, લિંકર સ્ક્રિપ્ટમાં ઓવરરાઇડ આઉટપુટ વિભાગ સોંપણીઓ.

-વી

- વિવર

-વી

Ld માટે સંસ્કરણ સંખ્યા દર્શાવો. -V વિકલ્પ પણ સપોર્ટેડ ઇમ્યુલેશનની યાદી આપે છે.

-x

--discard-all

બધા સ્થાનિક પ્રતીકો કાઢી નાખો.

-એક્સ

- ડિસ્કાર્ડ-લોકલ્સ

બધા કામચલાઉ સ્થાનિક પ્રતીકો કાઢી નાંખો. મોટા ભાગના લક્ષ્યો માટે, આ તે બધા સ્થાનિક પ્રતીકો છે જેમના નામો એલથી શરૂ થાય છે.

-ઈ પ્રતીક

--trace-symbol = symbol

દરેક લિંક કરેલી ફાઇલનું નામ છાપો જેમાં પ્રતીક દેખાય છે. આ વિકલ્પને ઘણી વખત આપવામાં આવશે. ઘણા સિસ્ટમો પર તે અંડરસ્કોરને સમાવવા માટે જરૂરી છે.

આ વિકલ્પ ઉપયોગી છે જ્યારે તમારી પાસે તમારી લિંકમાં અવ્યાખ્યાયિત પ્રતીક છે પરંતુ સંદર્ભ ક્યાંથી આવે છે તે ખબર નથી.

-Y પાથ

ડિફૉલ્ટ લાઇબ્રેરી શોધ પાથનો પાથ ઉમેરો આ વિકલ્પ સોલારિસ સુસંગતતા માટે અસ્તિત્વમાં છે.

-z કીવર્ડ

માન્યતાપ્રાપ્ત કીવર્ડ્સ "ઇન્સેપ્શ", "લોડફ્લટ્ર", "નોડેફોલેલ્બ", "નોડેલાઇટ", "નોોડલોપેન", "નોડોમ્પ", "હવે", "મૂળ", "કોમ્બ્રેકૉક", "નોકોમ્બરેલોક" અને "નોકોપીરેલોક" છે. ". અન્ય કીવર્ડ્સ સોલારિસ સુસંગતતા માટે અવગણવામાં આવે છે. "initfirst" કોઈપણ અન્ય પદાર્થો પહેલાં રનટાઈમ પર પ્રથમ પ્રારંભ કરવા માટે ઓબ્જેક્ટને ચિહ્નિત કરે છે. "ઇન્ટસેસ" ઓબ્જેક્ટને ચિહ્નિત કરે છે જે તેના પ્રતીક ટેબલ બધા પ્રતીકો પહેલાં પણ પ્રાથમિક એક્ઝેક્યુટેબલ થાય તે પહેલાં પ્રવેશે છે. "loadfltr" ઑબ્જેક્ટને ચિહ્નિત કરે છે જે તેના ફાઇલટેટ્સને રનટાઈમ પર તાત્કાલિક પ્રોસેસ કરે છે. "nodefaultlib" ઑબ્જેક્ટને ચિહ્નિત કરે છે કે જે આ ઑબ્જેક્ટની ડિપેન્ડન્સીઝની શોધ અવગણશે કોઈપણ ડિફૉલ્ટ લાઇબ્રેરી શોધ પથ "નોડિડેલ" ચિહ્નિત કરે છે જે ઑબ્જેક્ટ રનટાઈમ પર અનલોડ ન થવો જોઈએ. "નોડલોપેન" ચિહ્નને "ડ્લોનન" માટે ઉપલબ્ધ નથી. "nodump" ચિહ્નને ઓબ્જેક્ટ "dldump" દ્વારા ડમ્પ કરી શકાતું નથી. "હવે" ઑબ્જેક્ટને બિન આળસુ રનટાઈમ બાઈન્ડિંગ સાથે ચિહ્નિત કરે છે. "મૂળ" દર્શાવે છે કે ઓબ્જેક્ટ $ ORIGIN સમાવી શકે છે. "ડેફ્સ" ને અવ્યાખ્યાયિત પ્રતીકો નકારી કાઢે છે. "muldefs" બહુવિધ વ્યાખ્યાઓને મંજૂરી આપે છે "કોમ્બ્રેલોક" બહુવિધ રીલોક વિભાગોને સંયોજિત કરે છે અને તેને ગતિશીલ પ્રતીક લૂકઅપ કેશીંગ શક્ય બનાવવા માટે ગોઠવે છે.

"nocombreloc" સંયોજનમાં બહુવિધ reloc વિભાગોને અક્ષમ કરે છે. "નોકોપીરેલોક" નકલ રિસ્ટોન્સનું ઉત્પાદન નિષ્ક્રિય કરે છે.

- ( આર્કાઇવ્સ -)

- સ્ટાર્ટ-સમૂહ આર્કાઇવ્સ - - જૂથ

આર્કાઇવ્સ આર્કાઇવ ફાઇલોની સૂચિ હોવી જોઈએ. તેઓ સ્પષ્ટ ફાઇલ નામો, અથવા -l વિકલ્પો હોઈ શકે છે.

ઉલ્લેખિત આર્કાઇવ્સ વારંવાર શોધવામાં આવે છે જ્યાં સુધી કોઈ નવા અવ્યાખ્યાયિત સંદર્ભો બનાવવામાં ન આવે. સામાન્ય રીતે, આર્કાઇવને આદેશ વાક્ય પર સ્પષ્ટ કરવામાં આવે છે તે ક્રમમાં માત્ર એક વાર શોધવામાં આવે છે જો આર્કાઇવમાં કોઈ પ્રતીકને આવર્તન રેખાના ઓબ્જેક્ટ દ્વારા ઓળખાતા અવ્યાખ્યાયિત પ્રતીકને ઉકેલવા માટે જરૂરી હોય, તો લિંકર તે સંદર્ભને ઉકેલવામાં સમર્થ થતો નથી. આર્કાઇવ્સને જૂથબદ્ધ કરીને, બધાને વારંવાર શોધી કાઢવામાં આવે ત્યાં સુધી તમામ સંભવિત સંદર્ભો ઉકેલી શકાતા નથી.

આ વિકલ્પનો ઉપયોગ કરીને નોંધપાત્ર કામગીરી ખર્ચ છે. બે અથવા વધુ આર્કાઇવ્સ વચ્ચે અનિવાર્ય પરિપત્ર સંદર્ભો હોય ત્યારે જ તે શ્રેષ્ઠ છે.

--અસર-અજ્ઞાત-ઇનપુટ-કમાન

--કોઈ-સ્વીકાર-અજાણ-ઇનપુટ-કમાન

લિંકરને ઇનપુટ ફાઇલો સ્વીકારવા કહે છે જેની આર્કીટેક્ચર ઓળખી શકાતી નથી. ધારણા એવી છે કે વપરાશકર્તા જાણે છે કે તેઓ શું કરી રહ્યા છે અને ઇરાદાપૂર્વક આ અજ્ઞાત ઇનપુટ ફાઇલોમાં લિંક કરવા માંગે છે. આ લિંકરનું ડિફૉલ્ટ વર્તણૂક હતું, જે 2.14 ના પ્રકાશન પહેલા છે. પ્રકાશન 2.14 પછીનું મૂળભૂત વર્તણૂક આ પ્રકારની ઇનપુટ ફાઇલોને નકારવા માટે છે, અને તેથી જૂના વર્તણૂકને પુનઃસ્થાપિત કરવા માટે --cept-unknown-input-arch વિકલ્પ ઉમેરાઈ ગયો છે.

-સર્ટ કીવર્ડ

આ વિકલ્પ SunOS સુસંગતતા માટે અવગણવામાં આવે છે

-બૅનેમિક

-ડીએ

-કૉલ_શેર્ડ

ગતિશીલ લાઈબ્રેરીઓ સાથે લિંક. આ પ્લેટફોર્મો પર જ અર્થપૂર્ણ છે જેના માટે વહેંચાયેલ લાઈબ્રેરીઓ સપોર્ટેડ છે. આ વિકલ્પ સામાન્ય રીતે આવા પ્લેટફોર્મ્સ પર મૂળભૂત છે. આ વિકલ્પના વિવિધ પ્રકારો વિવિધ સિસ્ટમો સાથે સુસંગતતા માટે છે. તમે આ વિકલ્પને આદેશ વાક્ય પર ઘણી વખત વાપરી શકો છો: તે -l વિકલ્પો માટે લાઇબ્રેરી શોધને અસર કરે છે જે તેને અનુસરતા હોય છે.

-બગુપ

ગતિશીલ વિભાગમાં "DT_FLAGS_1" એન્ટ્રીમાં "DF_1_GROUP" ફ્લેગ સેટ કરો. આના કારણે રનટાઈમ લિંકર આ ઑબ્જેક્ટમાં લૂકઅપને હેન્ડલ કરે છે અને જૂથની અંદર તેના પર જ નિર્ભરતાની કામગીરી કરે છે. --no-undefined ગર્ભિત છે. આ વિકલ્પ એ ELF પ્લેટફોર્મ પર જ અર્થપૂર્ણ છે કે જે વહેંચાયેલ લાઈબ્રેરીઓનું સમર્થન કરે છે .

-બસ્તિક

-dn

-non_shared

સ્થિર

વહેંચાયેલ લાઈબ્રેરીઓ સાથે લિંક કરશો નહીં. આ પ્લેટફોર્મો પર જ અર્થપૂર્ણ છે જેના માટે વહેંચાયેલ લાઈબ્રેરીઓ સપોર્ટેડ છે. આ વિકલ્પના વિવિધ પ્રકારો વિવિધ સિસ્ટમો સાથે સુસંગતતા માટે છે. તમે આ વિકલ્પને આદેશ વાક્ય પર ઘણી વખત વાપરી શકો છો: તે -l વિકલ્પો માટે લાઇબ્રેરી શોધને અસર કરે છે જે તેને અનુસરતા હોય છે.

-બિશન્બોલિક

શેર કરેલી લાઇબ્રેરી બનાવતી વખતે, શેર કરેલી લાઇબ્રેરીની અંદરની વૈશ્વિક પ્રતિકોના સંદર્ભો, જો કોઈ હોય તો. સાધારણ રીતે, શેર કરેલ લાઇબ્રેરીની અંદરની વ્યાખ્યાને ઓવરરાઇડ કરવા માટે શેર કરેલા લાઇબ્રેરીની સાથે લિંક કરેલું પ્રોગ્રામ શક્ય છે. આ વિકલ્પ ફક્ત ELFplatforms પર અર્થપૂર્ણ છે જે વહેંચાયેલ પુસ્તકાલયોને સપોર્ટ કરે છે.

- ચેક-વિભાગો

- કોઈ-ચેક-વિભાગો

લિંકરને પૂછવામાં આવે છે કે વિભાગના સરનામાંને ચેક કર્યા પછી તેમને કોઈ ઓવરલેપ કે નહીં તે જોવા માટે નિયુક્ત કરવામાં આવ્યા છે. સામાન્ય રીતે લિંકર આ ચેક કરશે, અને જો તે કોઈ ઓવરલેપ શોધે તો તે યોગ્ય ભૂલ સંદેશા ઉત્પન્ન કરશે. લિંકર વિશે ખબર નથી અને ઓવરલેઝમાં વિભાગો માટે ભથ્થાં કરે છે. આદેશ વાક્ય સ્વીચ --check-sections નો ઉપયોગ કરીને ડિફોલ્ટ વર્તણૂક પુનઃસ્થાપિત કરી શકાય છે.

--cref

ક્રોસ રેફરન્સ કોષ્ટકનું આઉટપુટ. જો કોઈ લિંકર મેપ ફાઇલ બનાવવામાં આવી રહી છે, તો ક્રોસ રેફરન્સ કોષ્ટક નકશા ફાઇલમાં છપાય છે. નહિંતર, તે પ્રમાણભૂત આઉટપુટ પર મુદ્રિત છે.

કોષ્ટકનું બંધારણ ઇરાદાપૂર્વક સરળ છે, જેથી જો જરૂરી હોય તો તેને સરળતાથી સ્ક્રિપ્ટ દ્વારા પ્રક્રિયા કરી શકાય. પ્રતીકો નામ દ્વારા સૉર્ટ કરવામાં આવે છે, તે છાપવામાં આવે છે. દરેક પ્રતીક માટે, ફાઇલ નામોની સૂચિ આપવામાં આવે છે. જો પ્રતીક નિર્ધારિત છે, તો પ્રથમ યાદી થયેલ ફાઇલ વ્યાખ્યાના સ્થાન છે. બાકીની ફાઈલોમાં પ્રતીકનું સંદર્ભ છે.

- કોઈ-વ્યાખ્યાયિત-સામાન્ય

આ વિકલ્પ સરનામાંને સામાન્ય પ્રતીકોમાં અટકાવે છે. સ્ક્રિપ્ટ આદેશ "INHIBIT_COMMON_ALLOCATION" સમાન અસર ધરાવે છે.

--no-define-common વિકલ્પ આઉટપુટ ફાઇલ પ્રકારની પસંદગીમાંથી સામાન્ય ચિહ્નોને સરનામાંઓ સોંપવા માટેના નિર્ણયને ઘટાડવાની મંજૂરી આપે છે; નહિંતર નોન-રીલોકૅટેબલ આઉટપુટ ટાઈપ ફોર્સે સામાન્ય ચિહ્નોને એડ્રેસ આપવી. --no-define-common ની મદદથી સામાન્ય સંજ્ઞાઓને માત્ર મુખ્ય પ્રોગ્રામમાં સરનામાંને સોંપવા માટે વહેંચાયેલ લાઇબ્રેરીમાંથી સંદર્ભ આપવામાં આવે છે. આ વહેંચાયેલ લાઇબ્રેરીમાં નહિં વપરાયેલી ડુપ્લિકેટ જગ્યાને દૂર કરે છે અને રુટટાઇમ પ્રતીક રીઝોલ્યુશન માટે વિશિષ્ટ શોધ પથ સાથે ઘણા ગતિશીલ મોડ્યુલ્સ હોય છે ત્યારે ખોટા ડુપ્લિકેટને ઉકેલવા પર કોઈપણ સંભવિત મૂંઝવણને અટકાવે છે.

--defsym પ્રતીક = અભિવ્યક્તિ

આઉટપુટ ફાઇલમાં એક વૈશ્વિક પ્રતીક બનાવો, જેમાં અભિવ્યક્તિ દ્વારા આપવામાં આવેલ ચોક્કસ સરનામું છે. તમે આ વિકલ્પનો ઉપયોગ આદેશ વાક્યમાં બહુવિધ પ્રતીકોને વ્યાખ્યાયિત કરવા માટે ઘણીવાર કરી શકો છો. આ સંદર્ભમાં મર્યાદિત સ્વરૂપમાં અભિવ્યક્તિ માટે સપોર્ટેડ છે: તમે હેક્સાડેસિમલ ક્રમાંક અથવા હાલના પ્રતીકનું નામ આપી શકો છો અથવા હેક્ઝાડેસિમલ સ્થિરાંકો અથવા સંજ્ઞાઓને ઉમેરવા અથવા બાદ કરવા માટે "-" અને "-" નો ઉપયોગ કરો છો. જો તમને વધુ વિસ્તૃત સમીકરણોની જરૂર હોય, તો સ્ક્રિપ્ટમાંથી લિંકર કમાન્ડ ભાષાનો ઉપયોગ કરવાનું વિચારો. નોંધ: પ્રતીકમાં કોઈ સફેદ જગ્યા હોવી જોઈએ નહીં, સમકક્ષ ચિહ્ન (`` = ''), અને અભિવ્યક્તિ .

--ડેમેન્ગલ [= શૈલી ]

--કોઈ-ડીમેન્ગલ

આ વિકલ્પો ભૂલ સંદેશાઓ અને અન્ય આઉટપુટમાં પ્રતીક નામોને ભંગ કરે છે કે નહીં તે નિયંત્રિત કરે છે. જ્યારે લિંકરને ડીમેગલ થવાનું કહેવામાં આવે છે, ત્યારે તે પ્રતીક નામોને વાંચવા યોગ્ય ફેશનમાં રજૂ કરવાનો પ્રયાસ કરે છે: તે ઑબ્જેક્ટ ફાઇલ ફોર્મેટ દ્વારા ઉપયોગમાં લેવામાં આવે છે અને તે વપરાશકર્તા વાંચનીય નામોમાં C ++ મેન્ગલ્ડ પ્રતીક નામોને ફેરવે છે. વિવિધ કમ્પાઇલરોમાં વિવિધ મૅંગલિંગ સ્ટાઇલ છે વૈકલ્પિક ડીમેંગિંગ શૈલીની દલીલ તમારા કમ્પાઇલર માટે યોગ્ય મોડગલિંગ શૈલી પસંદ કરવા માટે ઉપયોગમાં લઈ શકાય છે. લિંકર ડિફોલ્ટ દ્વારા ડિએન્ગલ કરશે જ્યાં સુધી પર્યાવરણ ચલ COLLECT_NO_DEMANGLE સેટ નથી. આ વિકલ્પો મૂળભૂત પર ફરીથી લખી શકાય છે.

- ડાયનેમિક-લિંકર ફાઇલ

ડાયનેમિક લિંકરનું નામ સેટ કરો. ગતિશીલ રીતે જોડાયેલા ELF એક્ઝેક્યુટેબલ્સને બનાવતી વખતે આ જ અર્થપૂર્ણ છે. ડિફોલ્ટ ડાયનેમિક લિંકર સામાન્ય રીતે સાચું છે; તેનો ઉપયોગ ન કરો જ્યાં સુધી તમે જાણો છો કે તમે શું કરો છો

--એમ્બેડેડ-રીલોક્સ

આ વિકલ્પ એ જ અર્થપૂર્ણ છે જ્યારે એમ.આઇ.પી.એસ. એમ્બેડેડ પીઆઈસી કોડ જોડે છે, જે -એમમ્બેડેડ-પીક વિકલ્પ દ્વારા જીએનયુ કમ્પાઇલર અને એસેમ્બલરને પેદા કરે છે. તે લિંકરને એક ટેબલ બનાવવાનું કારણ બને છે જેનો ઉપયોગ કોઈ પણ ડેટાને સ્થાનાંતરિત કરવા માટે રનટાઈમમાં કરવા માટે થાય છે જે પોઇન્ટર મૂલ્યોમાં સ્ટેટિકલી પ્રારંભિક રૂપે પ્રારંભ કરવામાં આવ્યો હતો. વિગતો માટે પરીક્ષણો / લિડર-એમ્પીકમાં કોડ જુઓ.

--અમારી ચેતવણી

તમામ ચેતવણીઓને ભૂલો તરીકે ટ્રીટ કરો

--force-exe-suffix

ખાતરી કરો કે આઉટપુટ ફાઇલમાં .exe પ્રત્યય છે.

જો સફળતાપૂર્વક પૂર્ણપણે જોડાયેલ આઉટપુટ ફાઇલમાં ".exe" અથવા " .dll " પ્રત્યય નથી, તો આ વિકલ્પ લિંકરને ".exe" પ્રત્યય સાથે એક જ નામની આઉટપુટ ફાઇલની નકલ કરવા માટે દબાણ કરે છે. આ વિકલ્પ ઉપયોગી છે જ્યારે માઇક્રોસોફ્ટ વિન્ડોઝ યજમાન પર યુનિક્સ્ડ યુનિક્સ મેકફાઇલ્સનો ઉપયોગ કરવામાં આવે છે, કારણ કે વિન્ડોઝના કેટલાક વર્ઝનનો કોઈ ઈમેજ ચલાવશે નહીં સિવાય કે તે ".exe" પ્રત્યયમાં સમાપ્ત થાય.

- ના-જીસી-વિભાગો

--gc- વિભાગો

બિનઉપયોગી ઇનપુટ વિભાગોનાં કચરાના સંગ્રહને સક્ષમ કરો. તે લક્ષ્યાંકો પર અવગણવામાં આવે છે જે આ વિકલ્પને સપોર્ટ કરતા નથી. આ વિકલ્પ -r સાથે સુસંગત નથી, અને તે ગતિશીલ જોડાણ સાથે પણ ઉપયોગમાં લેવાતો નથી. આદેશ વાક્ય પર --no-gc-sections સ્પષ્ટ કરીને મૂળભૂત વર્તણૂક (આ કચરાના સંગ્રહને નહી કરવાનું) પુનઃસ્થાપિત કરી શકાય છે.

--help

માનક આઉટપુટ અને બહાર નીકળો પર આદેશ-વાક્ય વિકલ્પોનો સારાંશ છાપો.

- લક્ષ્યાંક-મદદ

પ્રમાણભૂત આઉટપુટ અને બહાર નીકળો પર બધા લક્ષ્ય ચોક્કસ વિકલ્પોનો સારાંશ છાપો.

નકશો નકશોફાઇલ

ફાઇલ મેપફાઇલમાં લિંકનો નકશો છાપો. ઉપરના -M વિકલ્પનું વર્ણન જુઓ.

- કોઈ-યાદ-મેમરી

ld સામાન્ય રીતે મેમરીમાં ઇનપુટ ફાઇલોના પ્રતીક કોષ્ટકોને કેશીંગ દ્વારા મેમરી વપરાશમાં ઝડપ માટે શ્રેષ્ઠ બનાવે છે. આ વિકલ્પ ld ને તેના બદલે મેમરી વપરાશ માટે ઑપ્ટિમાઇઝ કરે છે, જરૂરી પ્રતીક કોષ્ટકો ફરીથી ભરવાથી. જો જરૂરી હોય તો ld એક વિશાળ એક્ઝેક્યુટેબલ લિંક કરતી વખતે મેમરી જગ્યાથી બહાર નીકળી જાય છે.

--no-undefined

-ઝ ડિફ્સ

સામાન્ય રીતે બિન-સાંકેતિક વહેંચાયેલ લાઇબ્રેરી બનાવતી વખતે, અવ્યાખ્યાયિત પ્રતીકોને અનુમતિ આપવામાં આવે છે અને રનટાઇમ લોડર દ્વારા ઉકેલવામાં આવે છે. આ વિકલ્પો આવા અવ્યાખ્યાયિત પ્રતીકોને નામંજૂર કરે છે.

--લોલ-બહુવિધ-વ્યાખ્યા

-ઝ મુલડેફ્સ

સામાન્ય રીતે જ્યારે પ્રતીકને ઘણી વખત વ્યાખ્યાયિત કરવામાં આવે છે, ત્યારે લિંકર ઘાતક ભૂલની જાણ કરશે. આ વિકલ્પો બહુવિધ વ્યાખ્યાઓ આપે છે અને પ્રથમ વ્યાખ્યા ઉપયોગમાં લેવાશે.

--allow-shlib-undefined

શેર કરેલ ઑબ્જેક્ટ્સમાં અવ્યાખ્યાયિત પ્રતીકોને મંજૂરી આપો ત્યારે પણ --no-undefined સેટ કરેલ હોય. ચોખ્ખું પરિણામ એ હશે કે નિયમિત વસ્તુઓમાં અવ્યાખ્યાયિત પ્રતીકો હજુ પણ ભૂલને ટ્રીગર કરશે, પરંતુ શેર્ડ ઑબ્જેક્ટ્સમાં અવ્યાખ્યાયિત પ્રતીકોને અવગણવામાં આવશે. No_undefined ના અમલીકરણથી અનુમાન કરવામાં આવે છે કે રનટાઇમ લિંકર અવ્યાખ્યાયિત પ્રતીકો પર ગૂંગળાવે છે. જો કે ઓછામાં ઓછી એક સિસ્ટમ (બીઓએસ) છે જ્યાં વહેંચાયેલ લાઈબ્રેરીઓમાં અવ્યાખ્યાયિત પ્રતીકો સામાન્ય છે કારણ કે કર્નલ લોડ સમય પર તેમને પેચ કરે છે કે નહીં તે કાર્ય વર્તમાન આર્કીટેક્ચર માટે સૌથી યોગ્ય છે. IE ગતિશીલ યોગ્ય મેમ્સેટ કાર્ય પસંદ કરો. દેખીતી રીતે તે એચપીપેએ શેર કરેલ લાઈબ્રેરીઓ માટે અવ્યાખ્યાયિત પ્રતીકો પણ સામાન્ય છે.

--no-undefined-version

સામાન્ય રીતે જ્યારે પ્રતીકની અવ્યાખ્યાયિત સંસ્કરણ હોય, ત્યારે લિંકર તેને અવગણશે. આ વિકલ્પ અવ્યાખ્યાયિત સંસ્કરણ સાથે પ્રતીકોને નાપસંદ કરે છે અને તેના બદલે ઘાતક ભૂલ જારી કરવામાં આવશે.

- કોઈ-ચેતવણી-મેળ ખાતી નથી

સામાન્ય રીતે ld એક ભૂલ આપશે જો તમે એકસાથે ઇનપુટ ફાઇલોને લિંક કરવાનો પ્રયાસ કરો છો જે અમુક કારણોસર મેળ ખાતી નથી, કદાચ કારણ કે તેઓ વિવિધ પ્રોસેસરો માટે અથવા અલગ અલગ એન્ડિનેન્સીસ માટે સંકલિત થયા છે. આ વિકલ્પ એ ld ને પૂરું પાડે છે કે તે ચુપચાપ આવી શક્ય ભૂલોને પરવાનગી આપે છે આ વિકલ્પનો ઉપયોગ ફક્ત કાળજીપૂર્વક ઉપયોગમાં લેવાય છે, જ્યારે કિસ્સામાં તમે કેટલીક વિશિષ્ટ ક્રિયા લીધી છે જે ખાતરી કરે છે કે લિંકર ભૂલો અયોગ્ય છે.

- કોઈ-સંપૂર્ણ-આર્કાઇવ

અનુગામી આર્કાઇવ ફાઇલો માટે --whole-archive વિકલ્પની અસરને બંધ કરો.

--નિવારણ- exec

એક્ઝેક્યુટેબલ આઉટપુટ ફાઇલને જાળવી રાખો જ્યારે તે હજુ પણ ઉપયોગી છે. સામાન્ય રીતે, જો તે લિંક પ્રક્રિયા દરમિયાન ભૂલોનો સામનો કરી લે તો લિંકર આઉટપુટ ફાઇલ પેદા કરશે નહીં; તે આઉટપુટ ફાઇલને લખ્યા વગર બહાર નીકળે છે જ્યારે તે કોઈપણ પ્રકારની ભૂલને લગતી હોય છે.

-નિસ્ટ્ડીબ્બ

ફક્ત આદેશ વાક્ય પર સ્પષ્ટપણે સ્પષ્ટ લાઇબ્રેરી ડિરેક્ટરીઓ શોધો. લિંકર સ્ક્રિપ્ટ્સ (આદેશ લીટી પર ઉલ્લેખિત લિંકર સ્ક્રિપ્ટ્સ સહિત) માં નિર્ધારિત લાઇબ્રેરીની ડિરેક્ટરીઓ અવગણવામાં આવે છે.

--ફોર્મમેટ આઉટપુટ-ફોર્મેટ

ld ને એકથી વધુ પ્રકારની ઑબ્જેક્ટ ફાઇલને સપોર્ટ કરવા માટે ગોઠવી શકાય છે. જો તમારા ld આ રીતે રૂપરેખાંકિત થયેલ છે, તો તમે આઉટપુટ ઓબ્જેક્ટ ફાઇલ માટે બાઈનરી ફોર્મેટને સ્પષ્ટ કરવા માટે --format વિકલ્પનો ઉપયોગ કરી શકો છો. જ્યારે પણ ld વૈકલ્પિક ઑબ્જેક્ટ ફોર્મેટ્સને સપોર્ટેડ કરવા માટે ગોઠવવામાં આવે છે, તો તમારે સામાન્ય રીતે આને સ્પષ્ટ કરવાની જરૂર નથી, કારણ કે ld ને ડિફૉલ્ટ આઉટપુટ ફોર્મેટ તરીકે પેદા કરવા માટે રૂપરેખાંકિત થવું જોઈએ જે દરેક મશીન પર સૌથી સામાન્ય સ્વરૂપ છે. આઉટપુટ-ફોર્મેટ એ ટેક્સ્ટ સ્ટ્રિંગ છે, બીએફડી પુસ્તકાલયો દ્વારા સપોર્ટેડ ચોક્કસ ફોર્મેટનું નામ. (તમે objdump -i સાથે ઉપલબ્ધ બાઇનરી બંધારણોને સૂચિબદ્ધ કરી શકો છો.) સ્ક્રિપ્ટ આદેશ "OUTPUT_FORMAT" પણ આઉટપુટ ફોર્મેટને સ્પષ્ટ કરી શકે છે, પરંતુ આ વિકલ્પ તેને ઓવરરાઇડ કરે છે.

-કમાજિક

આ વિકલ્પ Linux સુસંગતતા માટે અવગણવામાં આવે છે.

-ક્યુ

આ વિકલ્પ SVR4 સુસંગતતા માટે અવગણવામાં આવે છે.

--relax

મશીન આધારિત અસરો સાથે એક વિકલ્પ. આ વિકલ્પ ફક્ત થોડા લક્ષ્યો પર સપોર્ટેડ છે.

કેટલાક પ્લેટફોર્મ્સ પર, --relax વિકલ્પ વૈશ્વિક ઑપ્ટિમાઇઝેશન કરે છે જે શક્ય બને છે જ્યારે લિંકર પ્રોગ્રામમાં સંબોધનને નિશ્ચિત કરે છે, જેમ કે ઢબમાં સરનામાં સ્થિતિઓ અને આઉટપુટ ઑબ્જેક્ટ ફાઇલમાં નવી સૂચનાઓને સંશ્લેષણ કરવું.

કેટલાક પ્લેટફોર્મ્સ પર આ લિન્ક ટાઇમ ગ્લોબલ ઑપ્ટિમાઇઝેશન પરિણામી એક્ઝેક્યુટેબલ અશક્યનું સાંકેતિક ડીબગિંગ કરી શકે છે. આ પ્રોસેસર્સના માત્સુષિતા એમએન 10200 અને એમએન 103-300 ફેમિલી માટેનો કેસ છે.

પ્લેટફોર્મ પર જ્યાં આ સપોર્ટેડ નથી, --relax સ્વીકારવામાં આવે છે, પરંતુ અવગણવામાં આવે છે.

--reain-symbols-file ફાઇલનામ

બીજા બધાને કાઢી નાંખીને ફાઇલ ફાઇલનામમાં સૂચિબદ્ધ ફક્ત પ્રતીકો જ રાખો. ફાઇલનામ ફક્ત સપાટ ફાઇલ છે, જેમાં લાઇન દીઠ એક પ્રતીક નામ છે. આ વિકલ્પ ખાસ કરીને વાતાવરણમાં ઉપયોગી છે (જેમ કે વીક્સવર્ક્સ) જ્યાં મોટા પ્રમાણમાં વૈશ્વિક પ્રતીક ટેબલ ધીમે ધીમે સંચિત થાય છે, તે રન-ટાઇમ મેમરીનું સંરક્ષણ કરે છે.

--reain-symbols-file અવ્યાખ્યાયિત પ્રતીકો, અથવા સ્થાનાંતરણ માટે જરૂરી સંકેતોને કાઢી નાખતું નથી .

તમે આદેશ વાક્યમાં માત્ર એક જ વાર -વિજેટ-સંકેતો-ફાઇલ સ્પષ્ટ કરી શકો છો તે ઓવરસેડ કરે -s અને -S

-rpath dir

રનટાઇમ લાઇબ્રેરી શોધ પાથમાં ડિરેક્ટરી ઉમેરો. શેર્ડ ઑબ્જેક્ટ્સ સાથે ELFexcutable લિંક કરતી વખતે તેનો ઉપયોગ થાય છે. બધા- પથ દલીલો એકસાથે જોડાય છે અને રનટાઇમ લિંકરને પસાર થાય છે, જે રનટાઇમ પર શેર્ડ ઑબ્જેક્ટ્સને શોધવા માટે તેનો ઉપયોગ કરે છે. -rpath વિકલ્પનો ઉપયોગ પણ શેર કરેલા ઓબ્જેક્ટોને શોધતી વખતે થાય છે જે શેર કરેલી ઑબ્જેક્ટ્સ દ્વારા ચોક્કસપણે લિંકમાં શામેલ હોય છે. -rpath-link વિકલ્પનું વર્ણન જુઓ જો ELP એક્ઝેક્યુટેબલને જોડતી વખતે -rpath વાપરવામાં ન આવે તો, પર્યાવરણ ચલ "LD_RUN_PATH" ના સમાવિષ્ટોનો ઉપયોગ કરવામાં આવશે જો તે વ્યાખ્યાયિત થયેલ છે.

-path વિકલ્પનો ઉપયોગ સનુઓસ પર પણ થઈ શકે છે. મૂળભૂત રીતે, SunOS પર, લિંકર તે આપવામાં આવેલ તમામ- એલ વિકલ્પોમાંથી એક રનટાઈમ શોધ પેચ રચે છે. જો -rpath વિકલ્પ વપરાય છે, તો -r વિકલ્પોને અવગણીને, ફક્ત -rpath વિકલ્પોની મદદથી, રનટાઇમ શોધ પાથની રચના કરવામાં આવશે. આ gcc વાપરી રહ્યા હોય ત્યારે ઉપયોગી થઈ શકે છે, જે ઘણા -L વિકલ્પોને ઉમેરે છે કે જે એનએનએસ માઉન્ટ થયેલ ફાઇલસિસ્ટમો પર હોઇ શકે છે.

અન્ય ELF લિંક્ડકો સાથે સુસંગતતા માટે, જો -આર વિકલ્પ એ ડિરેક્ટરી નામ દ્વારા અનુસરવામાં આવે છે, ફાઇલના નામની જગ્યાએ, તેને -rpath વિકલ્પ તરીકે ગણવામાં આવે છે.

-rpath- લિંક DIR

ELF અથવા SunOS નો ઉપયોગ કરતી વખતે, એક વહેંચાયેલ લાઇબ્રેરીને બીજી આવશ્યકતા હોઈ શકે છે જ્યારે "ld -shared" લિંકમાં ઇનપુટ ફાઇલોમાંથી એક તરીકે શેર કરેલા લાઇબ્રેરીનો સમાવેશ થાય છે ત્યારે આવું થાય છે

જ્યારે કોઈ બિન-શેર કરેલ, બિન-સ્થાનાંતરણ લિંક કરતું હોય ત્યારે લિંકર આવી નિર્ભરતાને મળે છે, તે આપમેળે જરૂરી શેર કરેલી લાઇબ્રેરીને શોધવાનો પ્રયાસ કરશે અને તેને લિંકમાં શામેલ કરવાનો પ્રયાસ કરશે, જો તે સ્પષ્ટ રીતે શામેલ નથી. આવા કિસ્સામાં, -rpath-link વિકલ્પ એ ડિરેક્ટરીઓના પ્રથમ સમૂહને શોધવા માટે સ્પષ્ટ કરે છે. -rpath-link વિકલ્પ ડિરેકટરી નામોની શ્રેણીને સ્પષ્ટ કરી શકે છે, ક્યાંતો કોલોન દ્વારા અલગ નામની સૂચિને સ્પષ્ટ કરીને, અથવા ઘણી વખત દેખાય છે.

આ વિકલ્પ સાવચેતી સાથે ઉપયોગ કરવો જોઈએ કારણ કે તે શોધ પથને ઓવરરાઇડ કરે છે કે જે વહેંચાયેલ લાઇબ્રેરીમાં હાર્ડ કમ્પાઇલ કરેલ હોઈ શકે છે. આવા કિસ્સામાં રનટાઇમ લિંકર કરતા અજાણતા એક અલગ શોધ પથ વાપરવાનું શક્ય છે.

લિંકર જરૂરી શેર્ડ લાઇબ્રેરીઝને શોધવા માટે નીચેની શોધ પથનો ઉપયોગ કરે છે.

1

-rpath-link વિકલ્પો દ્વારા સ્પષ્ટ થયેલ કોઈપણ ડિરેક્ટરીઓ.

2.

-rpath વિકલ્પો દ્વારા સ્પષ્ટ થયેલ કોઈપણ ડિરેક્ટરીઓ. -rpath અને -rpath-link વચ્ચેનો તફાવત એ છે કે -rpath વિકલ્પો દ્વારા સ્પષ્ટ થયેલ ડિરેક્ટરી એક્ઝેક્યુટેબલ અને રનટાઇમ પર વપરાયેલ છે, જ્યારે -rpath-link વિકલ્પ ફક્ત લિંક સમય પર અસરકારક છે. તે ફક્ત મૂળ લિંકર માટે જ છે.

3

એક ELF સિસ્ટમ પર, જો -rpath અને " rpath -link" વિકલ્પોનો ઉપયોગ ન કરવામાં આવે તો, પર્યાવરણ ચલ "LD_RUN_PATH" ના સમાવિષ્ટો શોધો. તે ફક્ત મૂળ લિંકર માટે જ છે.

4.

SunOS પર, જો -rpath વિકલ્પ વપરાયેલ ન હોય તો, -L વિકલ્પોની મદદથી સ્પષ્ટ થયેલ કોઈપણ ડિરેક્ટરીઓ શોધો.

5

મૂળ લિંકર માટે, પર્યાવરણ ચલ "LD_LIBRARY_PATH" ની સામગ્રી

6

મૂળ ELF લિંકર માટે, વહેંચાયેલ લાઇબ્રેરીની "DT_RUNPATH" અથવા "DT_RPATH" માંની ડિરેક્ટરીઓ તેના દ્વારા આવશ્યક શેર કરેલ લાઈબ્રેરીઓ માટે શોધાયેલ છે. જો "DT_RUNPATH" એન્ટ્રીઝ અસ્તિત્વમાં હોય તો "DT_RPATH" એન્ટ્રી અવગણવામાં આવે છે.

7.

મૂળભૂત ડિરેક્ટરીઓ, સામાન્ય રીતે / lib અને / usr / lib .

8

એક ELF સિસ્ટમ પર મૂળ લિંકર માટે, જો ફાઈલ /etc/ld.so.conf અસ્તિત્વમાં હોય, તો તે ફાઇલમાં મળેલી ડિરેક્ટરીઓની સૂચિ.

જો આવશ્યક શેર્ડ લાઇબ્રેરી મળી ન હોય, તો લિંકર એક ચેતવણી જાહેર કરશે અને લિંક સાથે ચાલુ રહેશે.

શેર કર્યું

-શક્ય

શેર્ડ લાઇબ્રેરી બનાવો. આ હાલમાં ફક્ત ELF, XCOFF અને SunOS પ્લેટફોર્મ પર સપોર્ટેડ છે. SunOS પર, લિંકર આપમેળે વહેંચાયેલ લાઇબ્રેરી બનાવશે જો -e વિકલ્પનો ઉપયોગ કરવામાં ન આવે અને લિંકમાં અવ્યાખ્યાયિત પ્રતીકો છે.

--sort-common

આ વિકલ્પ ld ને સામાન્ય પ્રતીકોને કદ દ્વારા સૉર્ટ કરવા કહે છે જ્યારે તે તેમને યોગ્ય આઉટપુટ વિભાગોમાં મૂકે છે. પહેલા બધાં બાઇટ પ્રતીકો, પછી બધાં બે બિટ, પછી ચાર બાઇટ, અને પછી બાકીનું બધું. આ ગોઠવણીની મર્યાદાઓને કારણે પ્રતીકો વચ્ચે અવરોધો અટકાવવાનું છે.

--split બાય-ફાઇલ [ કદ ]

--split-by-reloc ની જેમ જ પરંતુ દરેક ઇનપુટ ફાઇલ માટે નવું આઉટપુટ વિભાગ બનાવે છે જ્યારે કદ પહોંચી જાય. માપ જો નહિં, તો 1 ના કદ માટે મૂળભૂતો

--split-by-reloc [ ગણના ]

આઉટપુટ ફાઈલમાં વધારાની વિભાગો બનાવવાનો પ્રયાસ કરે છે જેથી ફાઇલમાં કોઈ એકલ આઉટપુટ વિભાગમાં ગણતરી સ્થાનાંતરણ કરતાં વધુ ન હોય. COFF ઑબ્જેક્ટ ફાઇલ ફોર્મેટ સાથે ચોક્કસ રીઅલ ટાઇમ કર્નલોમાં ડાઉનલોડ કરવા માટે વિશાળ પુનઃસ્થાપિત ફાઈલો બનાવતી વખતે આ ઉપયોગી છે; કારણ કે COFFcannot એક વિભાગમાં 65535 કરતાં વધુ સ્થાનાંતરનું પ્રતિનિધિત્વ કરે છે. નોંધ લો કે આ ઑબ્જેક્ટ ફાઇલ ફોર્મેટ સાથે કામ કરવામાં નિષ્ફળ જશે જે મનસ્વી વિભાગોને સપોર્ટ કરતા નથી. લિંકર પુન: વિતરણ માટે વ્યક્તિગત ઇનપુટ વિભાગોને વિભાજિત કરશે નહીં, તેથી જો કોઈ ઇનપુટ વિભાગ ગૌણ સ્થાનાંતરણ કરતાં વધુ હોય તો એક આઉટપુટ વિભાગમાં તે ઘણા પુનઃસ્થાપનો હશે. 32768 ની મૂલ્યની ગણતરી કરો.

--સ્ટાટ્સ

લિંકરના કાર્યપ્રણાલી, જેમ કે એક્ઝેક્યુશન સમય અને મેમરી વપરાશની ગણતરી અને પ્રદર્શન.

--ટ્રૅડિશનલ-ફોર્મેટ

કેટલાક લક્ષ્યો માટે, ld નું આઉટપુટ કેટલાક અસ્તિત્વમાંના લિંકરના આઉટપુટમાંથી કેટલીક રીતે અલગ છે. તેના બદલે પરંપરાગત ફોર્મેટનો ઉપયોગ કરવા માટે આ સ્વીચ વિનંતીઓ ld .

ઉદાહરણ તરીકે, સનઓએસ પર, એલડી સંકેત શબ્દમાળા ટેબલમાં ડુપ્લિકેટ એન્ટ્રીઝને જોડે છે. આ ડિબગીંગની સંપૂર્ણ માહિતી સાથે આઉટપુટ ફાઇલના કદને 30 ટકાથી ઘટાડી શકે છે. કમનસીબે, SunOS "dbx" પ્રોગ્રામ પરિણામી કાર્યક્રમ વાંચી શકતો નથી ("gdb" કોઈ મુશ્કેલી નથી). --ટ્રૅડિશનલ-ફોર્મેટ સ્વિચ ડુપ્લિકેટ એન્ટ્રીઝને સંયુક્ત ન કરવા માટે ld ને કહે છે.

--section-start sectionname = org

ઓર્ગન દ્વારા આપવામાં આવેલ ચોક્કસ સરનામાં પર આઉટપુટ ફાઇલમાં એક વિભાગ શોધો. તમે આદેશ વાક્યમાં બહુવિધ વિભાગોને શોધી કાઢવા માટે આ વિકલ્પનો ઉપયોગ કરી શકો છો. org એક હેક્સાડેસિમલ પૂર્ણાંક હોવો જોઈએ; અન્ય લિંકકર્તાઓ સાથે સુસંગતતા માટે, તમે મુખ્યત્વે હેક્સાડેસિમલ મૂલ્યો સાથે સંકળાયેલ અગ્રણી 0x છોડી જશો. નોંધ: સેટેક્શન નામ વચ્ચે કોઈ સફેદ જગ્યા હોવી જોઈએ નહીં, (equals sign) (`` = ''), અને org .

-Tbss org

-ટાટા ઓર્ગેનીક

-ટેટેક ઓર્જે

--- માટે શરૂઆતના સરનામાં તરીકે સંસ્થા ને વાપરો - --- "બસ", "ડેટા", અથવા આઉટપુટ ફાઈલના "ટેક્સ્ટ" સેગમેન્ટ. org એક હેક્સાડેસિમલ પૂર્ણાંક હોવો જોઈએ; અન્ય લિંકકર્તાઓ સાથે સુસંગતતા માટે, તમે મુખ્યત્વે હેક્સાડેસિમલ મૂલ્યો સાથે સંકળાયેલ અગ્રણી 0x છોડી જશો.

- ડેલ-વર્બોઝ

--verbose

Ld માટે સંસ્કરણ નંબર દર્શાવો અને લિંકર એમ્યુલેશનને સપોર્ટેડ કરો. દર્શાવો કે ઇનપુટ ફાઇલો અને ખોલી શકાતી નથી. લિંકર દ્વારા ઉપયોગમાં લેવાતી લિંકર સ્ક્રિપ્ટ પ્રદર્શિત કરો.

--version-script = version-scriptfile

લિંકર પર આવૃત્તિ સ્ક્રિપ્ટનું નામ સ્પષ્ટ કરો. તે સામાન્ય રીતે ઉપયોગમાં લેવાયેલ લાઇબ્રેરી માટે સંસ્કરણના વંશપરંપરા વિશે વધારાની માહિતીને નિર્દિષ્ટ કરવા માટે શેર્ડ લાઇબ્રેરીઓ બનાવતી વખતે વપરાય છે. આ વિકલ્પ એ ELF પ્લેટફોર્મ પર જ અર્થપૂર્ણ છે કે જે વહેંચાયેલ લાઈબ્રેરીઓનું સમર્થન કરે છે.

--વર્ન-સામાન્ય

ચેતવણી આપો જ્યારે સામાન્ય પ્રતીક બીજા સામાન્ય પ્રતીક સાથે અથવા પ્રતીકની વ્યાખ્યા સાથે જોડાય છે યુનિક્સ લિંકર્સ આ કેટલેક અંશે sloppy પ્રેક્ટિસ પરવાનગી આપે છે, પરંતુ કેટલાક અન્ય ઓપરેટિંગ સિસ્ટમો પર linkers નથી. આ વિકલ્પ તમને વૈશ્વિક સંકેતોને સંયોજિત કરવાથી સંભવિત સમસ્યાઓ શોધી શકે છે કમનસીબે, કેટલાક સી લાઈબ્રેરીઓ આ પ્રેક્ટિસનો ઉપયોગ કરે છે, જેથી તમે લાઇબ્રેરીઓ તેમજ તમારા પ્રોગ્રામમાં પ્રતીકો વિશે કેટલીક ચેતવણીઓ મેળવી શકો છો.

વૈશ્વિક પ્રતીકોના ત્રણ પ્રકાર છે, જે C ઉદાહરણો દ્વારા અહીં સચિત્ર છે.

int i = 1;

એક વ્યાખ્યા, જે આઉટપુટ ફાઇલના પ્રારંભિક ડેટા વિભાગમાં જાય છે.

બાહ્ય પૂર્ણાંક i;

એક અવ્યાખ્યાયિત સંદર્ભ, જે જગ્યા ફાળવે નથી ક્યાં તો ચલ માટે ક્યાં તો વ્યાખ્યા અથવા સામાન્ય પ્રતીક હોવું જોઈએ.

int i;

એક સામાન્ય પ્રતીક જો વેરિયેબલ માટે ફક્ત (એક અથવા વધુ) સામાન્ય પ્રતીકો છે, તો તે આઉટપુટ ફાઇલના પ્રારંભિક ડેટા વિસ્તારમાં જાય છે. લિંકર એક જ ચલ માટે સિંગલ પ્રતીકમાં બહુવિધ સામાન્ય ચિહ્નોનું મિશ્રણ કરે છે. જો તેઓ અલગ અલગ કદના હોય, તો તે સૌથી મોટું કદ લે છે. લિંકર એક સામાન્ય પ્રતીક ઘોષણામાં ફેરવે છે, જો તે જ ચલ ની વ્યાખ્યા હોય તો.

--વૉર્ન-સામાન્ય વિકલ્પ પાંચ પ્રકારના ચેતવણીઓ પેદા કરી શકે છે. દરેક ચેતવણી રેખાઓ એક જોડી સમાવેશ થાય છે: પ્રથમ માત્ર આવી પ્રતીક વર્ણવે છે, અને બીજા જ નામ સાથે આવી અગાઉના પ્રતીક વર્ણવે છે. એક અથવા બંને પ્રતીકો બંને એક સામાન્ય પ્રતીક હશે.

1

એક સંદર્ભમાં સામાન્ય પ્રતીકને ટર્નિંગ, કારણ કે પ્રતીકની વ્યાખ્યા પહેલેથી જ છે.

(
): ચેતવણી: વ્યાખ્યા દ્વારા ઓવરરાઇડ થયેલ ` 'ના સામાન્ય (
): ચેતવણી: અહીં વ્યાખ્યાયિત

2.

એક સંદર્ભમાં સામાન્ય પ્રતીકને ફેરવવાથી, કારણ કે પ્રતીકની પાછળની વ્યાખ્યા આવી છે. આ અગાઉના કેસ જેટલું જ છે, સિવાય કે પ્રતીકો અલગ ક્રમમાં આવે છે.

(
): ચેતવણી: ` 'ઓવરરાઇડિંગ સામાન્ય (
) ની વ્યાખ્યા: ચેતવણી: અહીં સામાન્ય છે

3

અગાઉના સમાન કદના સામાન્ય પ્રતીક સાથે સામાન્ય પ્રતીકને મર્જ કરવો.

(
): ચેતવણી: ` ' (
) ના બહુવિધ સામાન્ય: ચેતવણી: અગાઉના સામાન્ય અહીં છે

4.

અગાઉના મોટા સામાન્ય પ્રતીક સાથે સામાન્ય પ્રતીકને મર્જ કરવો.

(
): ચેતવણી: મોટા સામાન્ય (
) દ્વારા ઓવરરાઇડ ` 'ના સામાન્ય: ચેતવણી: મોટા સામાન્ય અહીં છે

5

પહેલાંનાં નાના સામાન્ય પ્રતીક સાથે સામાન્ય પ્રતીકને મર્જ કરવો. આ અગાઉના કેસ જેટલું જ છે, સિવાય કે પ્રતીકો અલગ ક્રમમાં આવે છે.

(
): ચેતવણી: ` 'ના નાનું સામાન્ય (
) ઓવરરાઇડ કરવું: ચેતવણી: નાના સામાન્ય અહીં છે

--વાર્ન્સ કન્સ્ટ્રકર્સ

ચેતવણી આપો જો કોઈ વૈશ્વિક કન્સ્ટ્રકટરોનો ઉપયોગ થાય છે. આ માત્ર થોડા ઑબ્જેક્ટ ફાઇલ ફોરમેટ માટે ઉપયોગી છે. COFF અથવા ELF જેવા ફોર્મેટ માટે, લિંકર વૈશ્વિક કન્સ્ટ્રકટર્સનો ઉપયોગ શોધી શકતો નથી.

--વેર્ન-બહુપતિ-જી.પી.

ચેતવો જો બહુવિધ વૈશ્વિક નિર્દેશક કિંમતો આઉટપુટ ફાઇલમાં આવશ્યક છે. ચોક્કસ પ્રોસેસરો માટે આ માત્ર અર્થપૂર્ણ છે, જેમ કે આલ્ફા. ખાસ કરીને, કેટલાક પ્રોસેસરોએ વિશિષ્ટ વિભાગમાં મોટા મૂલ્યવાન સ્થિરાંકો મૂક્યા છે. એક વિશિષ્ટ રજિસ્ટર (વૈશ્વિક નિર્દેશક) આ વિભાગના મધ્યમાં નિર્દેશ કરે છે, જેથી આધારકો રજીસ્ટર સંબંધિત સરનામાંકરણ સ્થિતિ મારફતે સ્થિરાકોને અસરકારક રીતે લોડ કરી શકાય છે. આધાર-રજિસ્ટર સંબંધિત મોડમાં ઑફસેટ સુધારેલ હોવાથી અને પ્રમાણમાં નાના (દા.ત., 16 બિટ્સ) હોવાથી, તે સતત પૂલના મહત્તમ કદને મર્યાદિત કરે છે. આમ, મોટા પ્રોગ્રામમાં મોટા ભાગે વૈશ્વિક પોઇન્ટર મૂલ્યોનો ઉપયોગ કરવો જરૂરી છે જેથી તમામ સંભવિત સ્થિરાંકોને સંબોધવામાં સક્ષમ બને. આ વિકલ્પ જ્યારે આ કિસ્સામાં થાય ત્યારે ચેતવણી આપવામાં આવે છે.

--હવે એક વાર

માત્ર એકવાર દરેક અવ્યાખ્યાયિત પ્રતીક માટે એક વખત ચેતવણી આપો, એકવાર મોડ્યુલ દીઠ જે તેને સંદર્ભ આપે છે.

--વર્ણ-વિભાગ-સંરેખિત

ચેતવો જો આઉટપુટ વિભાગનું સરનામું સંરેખણને કારણે બદલ્યું છે. લાક્ષણિક રીતે, ગોઠવણી એક ઇનપુટ વિભાગ દ્વારા સેટ કરવામાં આવશે. સ્પષ્ટ રીતે સ્પષ્ટ ન હોય તો સરનામાંને માત્ર બદલવામાં આવશે; એટલે કે, "SECTIONS" આદેશ વિભાગ માટે પ્રારંભિક સરનામાંને સ્પષ્ટ કરતું નથી.

--હોલ-આર્કાઇવ

--whole-archive વિકલ્પ પછી આદેશ વાક્ય પર ઉલ્લેખિત દરેક આર્કાઇવ માટે, આર્કાઇવને જરૂરી ઑબ્જેક્ટ ફાઇલો માટે શોધ કરતાં, લિંકમાં આર્કાઇવમાં દરેક ઓબ્જેક્ટ ફાઇલને શામેલ કરો. સામાન્ય રીતે આને આર્કાઇવ ફાઇલને શેર કરેલા લાઇબ્રેરીમાં ફેરવવા માટે ઉપયોગમાં લેવાય છે, જેના પરિણામે શેર કરેલી લાઇબ્રેરીમાં દરેક ઑબ્જેક્ટનો સમાવેશ કરવામાં આવે છે. આ વિકલ્પનો ઉપયોગ એકથી વધુ વાર થઈ શકે છે.

જીસીસીના આ વિકલ્પનો ઉપયોગ કરતી વખતે બે નોંધો: પ્રથમ, જીસીસી આ વિકલ્પ વિશે જાણતી નથી, તેથી તમારે ઉપયોગ કરવો પડશે- Wl, -whole-archive . બીજું, તમારા આર્કાઇવ્સની સૂચિ પછી -Wl, -no-whole-archive નો ઉપયોગ કરવાનું ભૂલશો નહીં, કારણ કે જીસીસી તમારી લિંક પર આર્કાઇવ્સની તેની સૂચિ ઉમેરશે અને તમે આ ધ્વજને પણ તે અસર કરવા માંગતા નથી.

- વક્ર પ્રતીક

પ્રતીક માટે રેપર ફંક્શનનો ઉપયોગ કરો. પ્રતીકનો કોઈપણ અવ્યાખ્યાયિત સંદર્ભ "__ વીંટો_સંબોબોલ" ને ઉકેલવામાં આવશે. "__real_symbol" નો કોઈપણ અવ્યાખ્યાયિત સંદર્ભ પ્રતીક માટે ઉકેલાઈ જશે.

આનો ઉપયોગ સિસ્ટમ ફંક્શન માટે રેપર આપવા માટે થઈ શકે છે. રેપર ફંક્શનને "__wrap_symbol" કહેવાય છે. જો તે સિસ્ટમ કાર્યને કૉલ કરવા ઇચ્છે છે, તો તેને "__ પ્રત્યક્ષ_સિમ્બોલ" નો કૉલ કરવો જોઈએ.

અહીં એક તુચ્છ ઉદાહરણ છે:

રદબાતલ * __wrap_malloc (પૂર્ણાંક) {printf ("malloc% ld સાથે બોલાવાયેલ \ n", c); __real_malloc (c); }

જો તમે આ ફાઇલ સાથે અન્ય કોડને --wrap malloc નો ઉપયોગ કરીને લિંક કરો છો, તો "malloc" પરના બધા કૉલ્સ તેના બદલે "__wrap_malloc" કાર્યને કૉલ કરશે. "__wrap_malloc" માં "__real_malloc" પર કૉલ વાસ્તવિક "malloc" ફંક્શનને કૉલ કરશે.

તમે "__real_malloc" વિધેય તેમજ પ્રદાન કરવાની ઇચ્છા રાખી શકો છો, જેથી --wrap વિકલ્પ વિના લિંક્સ સફળ થશે. જો તમે આ કરો છો, તો તમારે "__ પ્રત્યક્ષ_માૉલક" ની વ્યાખ્યા "__wrap_malloc" જેવી જ ફાઇલમાં ન કરવી જોઈએ; જો તમે કરો, તો લિંકરને તેને "મેલ્લોક" માં લપેટવાની તક મળી તે પહેલાં ઍમ્બોલર કૉલને હલ કરી શકે છે.

--enable-new-dtags

--disable-new-dtags

આ લિંકર ELF માં નવા ડાયનેમિક ટેગ બનાવી શકે છે. પરંતુ જૂની ELF સિસ્ટમ્સ તેમને સમજી શકશે નહીં. જો તમે --enable-new-dtags સ્પષ્ટ કરો છો, તો ડાયનેમિક ટેગ બનાવવામાં આવશ્યક છે. જો તમે --disable-new-dtags સ્પષ્ટ કરો, તો કોઈ નવા ડાયનેમિક ટેગ બનાવવામાં આવશે નહીં. ડિફૉલ્ટ રૂપે, નવો ગતિશીલ ટેગ બનાવી શકાતો નથી. નોંધો કે તે વિકલ્પો ફક્ત એલ્ફ સિસ્ટમ્સ માટે ઉપલબ્ધ છે.

I386 પીઇ લિન્કરે-શેર્ડ વિકલ્પને આધાર આપે છે, જે સામાન્ય એક્ઝેક્યુટેબલને બદલે ગતિશીલ રીતે જોડાયેલ લાઇબ્રેરી (ડીએલએલ) નું ઉત્પાદન કરે છે. જ્યારે તમે આ વિકલ્પનો ઉપયોગ કરો છો ત્યારે તમારે "* .dll" નું આઉટપુટ નામ આપવું જોઈએ. વધુમાં, લિંકર એ સ્ટાન્ડર્ડ "* .def" ફાઇલોને સંપૂર્ણપણે સપોર્ટ કરે છે, જે ઑબ્જેક્ટ ફાઇલની જેમ લિંકર કમાન્ડ લાઈન પર નિર્દિષ્ટ કરી શકાય છે (હકીકતમાં, તે આર્કાઇવ્સ પહેલાથી તે પ્રતીકોની નિકાસ કરતા હોવું જોઈએ, જેથી તેઓ તેની સાથે જોડાયેલા હોય, એક સામાન્ય ઑબ્જેક્ટ ફાઇલની જેમ).

બધા લક્ષ્યો માટે સામાન્ય વિકલ્પો ઉપરાંત, i386 PE linker વધારાના આદેશ વાક્ય વિકલ્પોને આધાર આપે છે જે i386 પીઇ ટાર્ગેટ માટે ચોક્કસ છે. વિકલ્પો કે જે મૂલ્યો લે છે તેઓ ક્યાંતો જગ્યા અથવા સમકક્ષ ચિહ્ન દ્વારા તેમના મૂલ્યોમાંથી અલગ થઈ શકે છે.

--add-stdcall- ઉપનામ

જો આપવામાં આવે તો, stdcall પ્રત્યય (@ એનએન ) સાથેના પ્રતીકોને નિકાસ કરવામાં આવશે અને પ્રત્યયને તોડવામાં આવે છે.

--base-file ફાઇલ

ડેલટોલ સાથે ડીએલએલ બનાવવા માટે જરૂરી તમામ સ્થાનાંતરોના આધાર સરનામાને સાચવવા માટે ફાઇલના નામ તરીકે ફાઇલનો ઉપયોગ કરો .

--dll

નિયમિત એક્ઝેક્યુટેબલની જગ્યાએ DLL બનાવો. આપ આપેલ ".def" ફાઈલમાં "LIBRARY" - પણ ઉપયોગ કરી શકો છો અથવા ઉલ્લેખ કરી શકો છો.

--enable-stdcall-fixup

--disable-stdcall-fixup

જો લિંકને પ્રતીક મળ્યું છે જે તે હલ ન કરી શકે, તો તે અન્ય વ્યાખ્યાયિત પ્રતીકને જોઈને `` ફઝી લિંક કરવાનું '' કરવાનો પ્રયાસ કરશે જે ફક્ત પ્રતીક નામના સ્વરૂપમાં જ અલગ છે (સીડીક્લલ વિ. Stdcall) અને લિંક દ્વારા તે પ્રતીકને ઉકેલશે. મેચમાં ઉદાહરણ તરીકે, અવ્યાખ્યાયિત પ્રતીક "_ફુ" કદાચ "_foo @ 12" ફંક્શન સાથે લિંક કરી શકાય છે, અથવા અવ્યાખ્યાયિત પ્રતીક "_bar @ 16" ફંક્શન "_bar" સાથે જોડાયેલી હોઈ શકે છે. જ્યારે લિંકર આ કરે છે, ત્યારે તે ચેતવણીને છાપે છે, કારણ કે તે સામાન્ય રીતે લિંક થવામાં નિષ્ફળ થવું જોઈએ, પરંતુ કેટલીકવાર થર્ડ-પાર્ટી ડેલ્સમાંથી બનાવેલી લાઇબ્રેરીઝને આ સુવિધાનો ઉપયોગ કરવા યોગ્ય હોઈ શકે છે જો તમે --enable-stdcall-fixup સ્પષ્ટ કરો તો, આ લક્ષણ સંપૂર્ણપણે સક્રિય કરેલ છે અને ચેતવણીઓ છાપવામાં આવતી નથી. જો તમે --disable-stdcall-fixup સ્પષ્ટ કરો તો, આ લક્ષણ નિષ્ક્રિય કરેલ છે અને આવી જોડાણો ભૂલો તરીકે ગણવામાં આવે છે

- નિકાસ-બધા-પ્રતીકો

જો આપેલ હોય, તો ડીએલએલની રચના કરવા માટે ઉપયોગમાં લેવામાં આવતી તમામ વૈશ્વિક પ્રતીકો DLL દ્વારા નિકાસ કરવામાં આવશે. નોંધ લો કે આ ડિફૉલ્ટ છે જો ત્યાં કોઈ પણ નિકાસિત પ્રતીકો હશે નહીં. જ્યારે પ્રતીકો સ્પષ્ટપણે DEF ફાઇલો મારફતે નિકાસ કરવામાં આવે છે અથવા કાર્ય ગુણધર્મો દ્વારા નિકાસ રીતે નિકાસ કરે છે, ત્યારે ડિફૉલ્ટ બીજું કંઇ નિકાસ નહીં કરે જ્યાં સુધી આ વિકલ્પ આપવામાં નહીં આવે. નોંધ કરો કે પ્રતીકો "DllMain @ 12", "DllEntryPoint @ 0", "DllMainCRTS ટર્ટટુડ @ 12", અને "અસ્પષ્ટ_પીટીઆર" આપમેળે નિકાસ નહીં થાય. આ ઉપરાંત, અન્ય DLLs માંથી આયાત કરાયેલ પ્રતીકો ફરી નિકાસ નહીં થાય, નહી ડીએલએલનું આંતરિક લેઆઉટ જેમ કે "_head_" થી શરૂ થવું અથવા "_ઇનેમ" સાથે સમાપ્ત થાય છે. વધુમાં, "libgcc", "libstd ++", "libmingw32", અથવા "crtX.o" માંથી કોઈ પ્રતીકો નિકાસ કરવામાં આવશે નહીં. સિમ્બોલ્સ જેની નામો "__rtti_" અથવા "__builtin_" સાથે શરૂ થાય છે, તે C ++ DLL સાથે સહાય કરવા માટે નિકાસ કરવામાં આવશે નહીં. અંતે, સાયગવિન-પ્રાઇવેટ પ્રતીકોની વિસ્તૃત સૂચિ છે કે જે નિકાસ થતી નથી (દેખીતી રીતે, જ્યારે સાયગ્વિનના લક્ષ્યો માટે DLL બનાવતી વખતે લાગુ થાય છે).

આ સાયગવિન -12, "_cygwin_dll_entry @ 12", "_cygwin_crt0_common @ 8", "_ cygwin_noncygwin_dll_entry @ 12", "_fmode", "_impure_ptr", "સાયગવિન_ટુચ_ ડેલ", "સાયગવિન_પેરેમેન0", "સાયગવિન_પ્રેમેન 1", "સાયગવિન_પ્રેમેન 2", "સાયગવિન_પ્રેમેન 3" ", અને" પર્યાય "

- એક્સેપ્ટ-પ્રતીકો પ્રતીક , પ્રતીક , ...

પ્રતીકોની સૂચિનો ઉલ્લેખ કરે છે જે આપમેળે નિકાસ થવો જોઈએ નહીં. પ્રતીક નામો અલ્પવિરામ અથવા કોલોન દ્વારા સીમાંકિત થઈ શકે છે.

--exclude-libs lib , lib , ...

આર્કાઇવ લાઇબ્રેરીઓની સૂચિનો ઉલ્લેખ કરે છે જેમાંથી પ્રતીકો આપમેળે નિકાસ થવો જોઈએ નહીં. લાઇબ્રેરી નામો અલ્પવિરામ અથવા કોલોન દ્વારા સીમાંકિત થઈ શકે છે. "-exclude-libs All" નો ઉલ્લેખ આપમેળે નિકાસમાંથી તમામ આર્કાઇવ લાઇબ્રેરીમાંના ચિહ્નોને બાકાત કરે છે. આ વિકલ્પને અનુલક્ષીને, .def ફાઇલમાં સ્પષ્ટપણે સૂચિબદ્ધ સંજ્ઞાઓને નિકાસ કરવામાં આવે છે.

--ફાઇલ-સંરેખણ

ફાઇલ ગોઠવણી સ્પષ્ટ કરો. ફાઈલમાંના વિભાગો હંમેશાં ફાઇલ ઓફસેટથી શરૂ થશે જે આ નંબરના ગુણાંક છે. 512 માટે આ મૂળભૂત

--હેપ અનામત

--હેપ અનામત , મોકલવું

આ પ્રોગ્રામ માટે ઢગલા તરીકે વાપરવા માટેની અનામત (અને વૈકલ્પિક રીતે મોકલવું) મેમરીનો જથ્થો સ્પષ્ટ કરો. ડિફૉલ્ટ 1 MB અનામત છે, 4K પ્રતિબદ્ધ છે.

--image-base મૂલ્ય

તમારા પ્રોગ્રામ અથવા ડેલનો આધાર સરનામું તરીકે મૂલ્યનો ઉપયોગ કરો. આ સૌથી નીચો મેમરી સ્થાન છે જેનો ઉપયોગ જ્યારે તમારા પ્રોગ્રામ અથવા ડેલ લોડ થાય છે. તમારા ડેલ્સના સ્થળાંતર અને સુધારણા કરવાની જરૂરિયાતને ઘટાડવા માટે, દરેક પાસે એક અનન્ય આધાર સરનામું હોવું જોઈએ અને કોઈ અન્ય ડેલ્સને ઓવરલેપ કરવું નહીં. એક્ઝેક્યુટેબલ્સ માટે ડિફૉલ્ટ 0x400000 અને ડીએલએસ માટે 0x10000000 છે.

- કિલ-એટ

જો આપવામાં આવે તો, stdcall પ્રત્યયો (@ એનએન ) નિકાસ કરવામાં આવે તે પહેલાં પ્રતીકોમાંથી તોડવામાં આવશે.

- મુખ્ય-છબી-સંસ્કરણ મૂલ્ય

`` ઈમેજ વર્ઝન '' ની મુખ્ય સંખ્યા સુયોજિત કરે છે. 1 થી ડિફૉલ્ટ્સ

--મુખ્ય-ઓએસ-વર્ઝન મૂલ્ય

`` ઓએસ વર્ઝન '' ની મુખ્ય સંખ્યા સુયોજિત કરે છે ડિફોલ્ટ્સ 4 થી

--મુખ્ય-ઉપસિસ્ટમ-વર્ઝન મૂલ્ય

`સબસિસ્ટમ આવૃત્તિ 'ની મુખ્ય સંખ્યાને સુયોજિત કરે છે ડિફોલ્ટ્સ 4 થી

--minor-image-version મૂલ્ય

`` છબીનું સંસ્કરણ '' ના નાના નંબરને સેટ કરે છે 0 થી ડિફૉલ્ટ્સ

--minor-os- આવૃત્તિ મૂલ્ય

`` ઓએસ વર્ઝન '' નાં નાની સંખ્યાને સુયોજિત કરે છે. 0 થી ડિફૉલ્ટ્સ

--minor-subsystem- આવૃત્તિ મૂલ્ય

`` સબસિસ્ટમ સંસ્કરણ '' ની નાની સંખ્યાને સુયોજિત કરે છે 0 થી ડિફૉલ્ટ્સ

--output-def ફાઇલ

લિંકર ફાઇલ ફાઇલ બનાવશે જેમાં ડીએલએલ જે લિંકર પેદા કરે છે તેનાથી સંબંધિત ડીઇએફ ફાઇલ હશે. આ ડીઇએફ ફાઇલ (જે "* .def" તરીકે ઓળખાવી શકાય છે) નો ઉપયોગ "dlltool" સાથે આયાત લાઇબ્રેરી બનાવવા માટે થઈ શકે છે અથવા તેનો ઉપયોગ આપોઆપ અથવા સર્વથા નિકાસ કરેલા પ્રતીકોના સંદર્ભ તરીકે થઈ શકે છે.

--out-implib ફાઇલ

લિંકર ફાઇલ ફાઇલ બનાવશે જેમાં લિંકર પેદા થતી DLL ને અનુરૂપ આયાત lib સમાવશે. આ આયાત લિબેલ (જે "* .dll.a" અથવા "* .a") ને ક્લાયન્ટને જનરેટેડ DLL સામે લિંક કરવા માટે ઉપયોગમાં લેવાય છે; આ વર્તણૂકથી અલગ "dlltool" આયાત લાઇબ્રેરી સર્જન પગલું અવગણવું શક્ય બને છે.

--enable-auto-image-base

DLLs માટે આપમેળે છબી આધાર પસંદ કરો, જ્યાં સુધી "--image-base" દલીલનો ઉપયોગ કરીને કોઈ ઉલ્લેખિત ન હોય. દરેક DLL, ઇન-મેમરી અથડામણ અને રિલેક્શન્સ માટે અનન્ય ઇમેજ પાયા બનાવવા માટે ડેલનૅનમાંથી હેશનો ઉપયોગ કરીને, જે પ્રોગ્રામ એક્ઝેક્યુશનને વિલંબિત કરી શકે છે.

--disable-auto-image-base

આપોઆપ એક અનન્ય છબી આધાર પેદા નથી જો કોઈ વપરાશકર્તા-ઉલ્લેખિત ઇમેજ બેઝ ("--image-base") ન હોય તો પછી પ્લેટફોર્મ ડિફોલ્ટનો ઉપયોગ કરો.

--dll- શોધ-ઉપસર્ગ સ્ટ્રિંગ

આયાત લાઇબ્રેરી વગર dll ને ગતિશીલ રીતે લિંક કરતી વખતે, "lib .dll" પર પસંદગીમાં " .dll" માટે શોધો. આ વર્તન વિવિધ `` સબપ્લાટેટ્સ '' માટે બનાવવામાં આવેલ DLL વચ્ચે સરળ તફાવતની પરવાનગી આપે છે: મૂળ, સાયગવિન, યુવિન, પીએડબલ્યુ, વગેરે. દાખલા તરીકે, સાયગવિન DLL સામાન્ય રીતે "- dll-search-prefix = cyg" નો ઉપયોગ કરે છે.

- સક્ષમ-ઓટો-આયાત

ડીએલએ (DLL) માંથી ડેટા આયાત માટે "_symbol" થી "__imp__symbol" ની અદ્યતન કડી કરવી, અને તે DATAexports સાથે આયાત પુસ્તકાલયો બનાવતી વખતે જરૂરી થંકિંગ પ્રતીકો બનાવવી. આ સામાન્ય રીતે 'માત્ર કામ કરશે' --- પણ ક્યારેક તમે આ સંદેશ જોઈ શકો છો:

"વેરિયેબલ '' ઓટો-આયાત કરી શકાતી નથી. વિગતો માટે ld ના" --enable-auto-import "માટે દસ્તાવેજીકરણ વાંચો."

આ સંદેશ ત્યારે થાય છે જ્યારે કેટલાક (સબ) અભિવ્યકિતનો અંતમાં બે સ્થિરાંકો (વિન 32 આયાત કોષ્ટકો માત્ર એક જ પરવાનગી આપે છે) દ્વારા આપવામાં આવે છે. એવી ઘટનાઓ કે જેમાં તે આવી શકે છે જેમાં ડીએલએલમાંથી આયાત કરેલ સ્ટ્રક્ટ વેરિયેબલ્સના સભ્ય ક્ષેત્રોની ઍક્સેસ તેમજ DLL માંથી આયાત કરેલા એરે વેરિઅમલમાં સતત ઇન્ડેક્સનો ઉપયોગ કરવો. કોઈપણ મલ્ટિવર્ડ વેરિયેબલ (એરે, સ્ટ્ર્ક્ટ્સ, લાંબી, વગેરે) આ ભૂલની શરતને ટ્રિગર કરી શકે છે. જો કે, વાંધાજનક નિકાસ કરેલ વેરિયેબલના ચોક્કસ ડેટા પ્રકારને ધ્યાનમાં લીધા વગર, ld એ હંમેશા તેને શોધી કાઢશે, ચેતવણીને બહાર કાઢશે અને બહાર નીકળો

નિકાસ કરેલ ચલના ડેટા પ્રકારને અનુલક્ષીને આ મુશ્કેલીને સંબોધવા માટેના ઘણા રસ્તાઓ છે:

એક રીત છે --નિયેબલ-રનટાઇમ-સ્યુડો-રીલોક સ્વીચ. આ રનટાઇમ પર્યાવરણ માટે તમારા ક્લાયન્ટ કોડના સંદર્ભોને વ્યવસ્થિત કરવાનું કાર્ય છોડી દે છે, તેથી આ પદ્ધતિ ત્યારે જ કાર્ય કરે છે જ્યારે રનટાઇમ એન્વાયરોંટમેન્ટ આ સુવિધાને સપોર્ટ કરે છે

બીજા ઉકેલ એ 'સ્થિરાંકો'માંથી એકને ચલમાં ફેરવવાનું દબાણ કરવું - એટલે કે, કમ્પાઇલ સમયે અજ્ઞાત અને અન-ઑપ્ટીબલ. એરે માટે, બે શક્યતાઓ છે: a) અનુક્રમણિકા (એરેનું સરનામું) ચલ બનાવવા, અથવા b) 'સતત' ઇન્ડેક્સ ચલ બનાવવા આમ:

બાહ્ય પ્રકાર extern_array []; extern_array [1] -> {અસ્થિર પ્રકાર * t = extern_array; ટી [1]}

અથવા

બાહ્ય પ્રકાર extern_array []; extern_array [1] -> {volatile int t = 1; extern_array [t]}

સ્ટ્ર્ક્ટ્સ (અને મોટાભાગનાં અન્ય મૉઉડવર્ડ ડેટા પ્રકારો) માટે સ્ટ્રક્ટ પોતે જ (અથવા લાંબા સમય સુધી, અથવા ...) ચલ બનાવવાનો વિકલ્પ છે:

બાહ્ય સ્ટ્રક્ટની બાહ્ય બાહ્ય રચના; extern_struct.field -> {વોલેટાઇલ સ્ટ્રક્ટ s * t = & extern_struct; ટી-> ક્ષેત્ર}

અથવા

બાહ્ય લાંબા લાંબા extern_ll; extern_ll -> {હૂંફાળું લાંબા લાંબા * local_ll = & extern_ll; * local_ll}

આ મુશ્કેલી સાથે વ્યવહાર કરવાની ત્રીજી પદ્ધતિ એ છે કે વાંધાજનક પ્રતીક માટે 'સ્વતઃ આયાત' છોડવું અને તેને "__declspec (ડેલિમપોર્ટ)" સાથે ચિહ્નિત કરવું. જો કે, વ્યવહારમાં તમારે કમ્પાઇલ-ટાઇમ # ડિફાઇનનો ઉપયોગ કરવાની જરૂર છે તે દર્શાવવા માટે કે શું તમે DLL બનાવી રહ્યા છો, ક્લાઈન્ટ કોડનું નિર્માણ કરી રહ્યા છો જે DLL ને લિંક કરશે, અથવા માત્ર સ્ટેટિક લાઇબ્રેરી પર બિલ્ડીંગ / લિંક કરશે. 'ઓફસેટ ઓફસેટ ઑફસેટ' સમસ્યાને ઉકેલવા માટેની વિવિધ પદ્ધતિઓ વચ્ચેની પસંદગી કરવા માટે, તમારે વિશિષ્ટ વાસ્તવિક દુનિયાનો ઉપયોગ કરવો જોઈએ:

મૂળ:

--foo.h બાહ્ય એઆરઆર []; --foo.c #include "foo.h" રદબાતલ મુખ્ય (પૂર્ણાંક argc, char ** argv) {printf ("% d \ n", arr [1]); }

ઉકેલ 1:

--foo.h બાહ્ય એઆરઆર []; --foo.c #include "foo.h" રદબાતલ મુખ્ય (પૂર્ણાંક argc, char ** argv) {/ * આ ઉકેલ એ win32 અને cygwin માટે છે; "ઑપ્ટિમાઇઝ" * / વોલેટાઇલ પૂર્ણાંક * parr = arr ન કરો; પ્રિન્ટફ ("% d \ n", પેર [1]); }

ઉકેલ 2:

--foo.h / * નોંધ: સ્વતઃ નિકાસ ધારવામાં આવે છે (__declspec (dllexport)) * / #if (વ્યાખ્યાયિત (_WIN32)) વ્યાખ્યાયિત (__ CYGWIN__)) અને & \! (વ્યાખ્યાયિત (FOO_BUILD_DLL)) વ્યાખ્યાયિત (FOO_STATIC )) # FOO_IMPORT __declspec (dllimport) વ્યાખ્યાયિત કરે છે # FOO_IMPORT #define FOODIM FOODIMPORT ઇન્સ્ટ આર []; --foo.c #include "foo.h" રદબાતલ મુખ્ય (પૂર્ણાંક argc, char ** argv) {printf ("% d \ n", arr [1]); }

આ સમસ્યાને દૂર કરવાનો ચોથો માર્ગ એ છે કે વાંધાજનક ચલો માટે ડેટા ઇન્ટરફેસ (દા.ત. સેટ_ફુ () અને get_foo () એક્સેસર વિધેયો) ને બદલે વિધેયાત્મક ઇન્ટરફેસનો ઉપયોગ કરવા માટે તમારી લાઇબ્રેરી ફરીથી-કોડમાં છે.

--disable-auto-import

DLLs માંથી DATAimports માટે "__imp__symbol" થી "_symbol" થી "સિમ્બૉલ્સ" ને જોડવા માટે પ્રયાસ કરશો નહીં.

--નિયેબલ-રનટાઇમ-સ્યુડો-રીલોક

જો તમારા કોડમાં --enable-auto-import વિભાગમાં વર્ણવેલ અભિવ્યક્તિઓ છે, એટલે કે, ડીએલએનએલનો ડેટા-ઑફલાઇન ઓફસેટ સાથે, આ સ્વિચ 'રનટાઇમ સ્યુડો રીલોકેશન્સ' ની વેક્ટર બનાવશે જે રેંડટાઇમ પર્યાવરણ દ્વારા સંદર્ભોને સંતુલિત કરવા માટે વાપરી શકાય છે. તમારા ક્લાયન્ટ કોડમાં આવા ડેટા પર.

--disable-runtime-sudo-reloc

ડીએલએલના બિન-શૂન્ય ઑફસેટ ડેટા આયાત માટે સ્યુડો સ્થાનાંતરણ બનાવતા નથી. આ મૂળભૂત છે

--enable-extra-pe-debug

સ્વતઃ આયાત પ્રતીક થંકિંગથી સંબંધિત વધારાની ડીબગ માહિતી બતાવો

--ભાગ-સંરેખણ

વિભાગ સંરેખણ સુયોજિત કરે છે. મેમરીમાં વિભાગો હંમેશાં આ સરનામાંથી શરૂ થશે જે આ નંબરની બહુવિધ છે. મૂળભૂતો 0x1000

- સ્ટેક અનામત

- સ્ટેક અનામત , મોકલવું

આ પ્રોગ્રામ માટે સ્ટેક તરીકે ઉપયોગ કરવા માટે અનામત (અને વૈકલ્પિક રીતે મોકલવું) મેમરીનો જથ્થો સ્પષ્ટ કરો. ડિફૉલ્ટ 2Mb આરક્ષિત છે, 4K પ્રતિબદ્ધ છે.

- સબસિસ્ટમ જે

- સબસિસ્ટમ જે : મુખ્ય

- સબસિસ્ટમ જે : મુખ્ય . નાના

ઉપસિસ્ટમ નિર્દિષ્ટ કરે છે, જે હેઠળ તમારા પ્રોગ્રામનો અમલ થશે. જે કાનૂની મૂલ્યો "મૂળ", "વિંડોઝ", "કન્સોલ", અને "પોઝીક્સ" છે. તમે વૈકલ્પિક રીતે સબસિસ્ટમ સંસ્કરણ પણ સેટ કરી શકો છો.

મહત્વનું: તમારા ચોક્કસ કમ્પ્યૂટર પર આદેશ કેવી રીતે વાપરવામાં આવે છે તે જોવા માટે man આદેશ ( % man ) નો ઉપયોગ કરો.