ሊነክስ / ዩኒየስ ትዕዛዝ: መታወቂያ

NAME

ld - የ GD አያያዥን በመጠቀም LD ን በመጠቀም

SYNOPSIS

ld [ አማራጮች ] objfile ...

DESCRIPTION

ld ብዙ ነገሮችን እና ማህደሮችን ያዋህዳል, ውሂባቸውን ያንቀሳቅሳል እና የውንብሮች ማጣቀሻዎችን ያጣምራል. ብዙውን ጊዜ አንድ ፕሮግራም ለማቀናጀት የመጨረሻው እርምጃ ld መሮጥ ነው.

በማገናኘቱ ሂደት ላይ ግልጽ እና ሙሉ ቁጥጥር ለማቅረብ በኤችቲ እና ቲ አዶ የአርዕስት አዘጋጅ ትዕዛዝ አቀማመጥ ውስጥ የተካተቱ የ Linker Command ቋንቋ ቋንቋዎችን ይቀበላል.

ይህ ሰው ገጽ ትዕዛዙን አይገልጽም. በ "info" ውስጥ ያለውን የ ld መግቢያ, ወይም የ " GNU ማገናኛ" ላይ ያለው መመሪያ በሙሉ, በትዕዛዝ ቋንቋ እና በሁሉም የጂኤንዩ አገናኝ አገናኞች ላይ ሙሉ ዝርዝር መረጃን ይመልከቱ.

ይህ የ ld ስሪት በአጠቃላይ ዓላማዎች የ BFD ቤተ-ፍርዶች በንብረቶች ፋይሎች ላይ እንዲሰሩ ይጠቀማል. ይህ ld ንብረቶችን ለማንበብ, ለማጣመር, እና በተለያዩ ቅርፀቶች ለምሳሌ- COFF ወይም «a.out» ይጽፋል. ማንኛውም አይነት ቅርጸት ፋይል ለመፍጠር የተለያዩ ቅርጸቶች አንድ ላይ ሊገናኙ ይችላሉ.

ከተለዋዋጭነት በተጨማሪ የጂኤንዩ (GNU) አገናኝ መፈተሻ ከሌሎች የምርመራ መስመሮች የበለጠ ጠቃሚ ነው. ብዙ አጓዦች ስህተት ሲገጥሙ ግድፈቱን ወዲያውኑ ይተዋል. በተቻለ መጠን, ld አሁንም ይቀጥላል, ይህም ሌሎች ስህተቶችን ለይተው እንዲያውቁ ያስችልዎታል (ወይም አንዳንድ ጊዜ, ስህተት ቢፈጠር የውጤት ፋይሉን ለማግኘት ይችላሉ).

የጂኤንዩ (GNU) አገናኝ መ / ቤት ብዙ ሰፋ ያሉ ሁኔታዎችን ለመሸፈን እና ከሌሎች አገናኞች ጋር በተቻለ መጠን ተመጣጣኝ እንዲሆን ነው. በዚህ ምክንያት, ባህሪውን ለመቆጣጠር ብዙ ምርጫዎች አሉዎት.

OPTIONS

አገናኙም በርካታ የትዕዛዝ-መስመር አማራጮችን ይደግፋል, ነገር ግን በተግባር ሲሰሩት ጥቂቶቹ በየትኛውም ሁኔታ ውስጥ ጥቅም ላይ ይውላሉ. ለምሳሌ, አዘውትሮ የኤልዲ አጠቃቀም በደረጃ የዩኒክስ ዕቃዎች ላይ በመደበኛ ደረጃ የተደገፈ የዩኒክስ ስርዓትን ማገናኘት ነው. እንደዚህ አይነት ስርዓት, «hello.o» ፋይልን ለማገናኘት

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

ይህም "/ lib / crt0.o" ን በመጠቀም "hello.o" እና "libc.a" ን ከ "standard libraries" የሚወጣውን ውጤት በማገናኘት ውጤቱ ተብሎ የሚጠራውን ፋይል እንዲፈጥር ያዛል. (ከታች ያለውን -l የሚለውን ውይይት ይመልከቱ.)

አንዳንድ ለ LD መስመር ላይ ያሉ የማስመር አማራጮች በትእዛዝ መስመር በማንኛውም ቦታ ሊገለፁ ይችላሉ. ነገር ግን እንደ -l ወይም -T ያሉ ፋይሎችን የሚጠቁሙ አማራጮች ፋይሉ በ "ትዕዛዝ መስመር" ውስጥ በሚታይበት ቦታ, ከቁልፍ ፋይሎች እና ከሌሎች የፋይል አማራጮች ጋር በሚታይበት ቦታ እንዲነበብ ያደርጋል. የዱር-ፋይል ፋይሎችን በተለየ ሙግት መድገም ምንም ተጨማሪ ውጤት አይኖረውም, ወይም ከዚያ በፊት የተከሰቱ ክስተቶች (በግራ ትዕዛዝ መስመር ላይ በስተጀርባ ያሉትን) ይሽሩ. ከታች ከተዘረዘሩት መግለጫዎች ውስጥ በተወሰነ መልኩ ትርጉም ያላቸው ተብለው የተገለጹ አማራጮች ተዘርዝረዋል.

አማራጮቹ ያልሆኑ አማራጮች በአንድ ላይ የተገናኙ የንብረቶች ፋይሎች ወይም ማህደሮች ናቸው. በአንድ አማራጭ እና በክርክር መካከል የንብረቶች ነጋሪ እሴት ላይ ካልሆነ በስተቀር የትዕዛዝ መስመር አማራጮችን ሊከተሉ, ሊቀድሙ ወይም ሊደመሩ ሊችሉ ይችላሉ.

አብዛኛውን ጊዜ አገናኙን ቢያንስ አንድ ነገር ፋይል ይባላል, ነገር ግን l , -R እና የስክሪፕት ትዕዛዝ ቋንቋን በመጠቀም ሌሎች አይነት ሁለትዮሽ የምግቦች ፋይሎችን መጥቀስ ይችላሉ. የሁለትዮሽ ግብዓት ፋይሎችን ካላደረጉ አገናኙው ምንም ውጤት አያወጣም, እና ምንም ግቤት ፋይሎችን አያስገባም.

አገናኝው የአንድ ነገር ፋይል ቅርጸት መቀበል ካልቻለ, እሱ አገናኝ አጻጻፍ አድርጎ ያስባል. በዚህ መንገድ የተገለፀው ስክሪፕት ለ አገናኙ የሚጠቀመውን ዋና የአገናኙን አጻፋዊ ቅደም ተከተል ያካትታል (ነባሪው አገናኝ አገናኝ ወይም በ-ት-ተጠቅሷል). ይህ ባህሪ አገናኙን እቃ ወይም ማህደር ሆኖ በሚታየው ፋይል ላይ እንዲያገናኝ ያስችላቸዋል, ነገር ግን የተወሰኑ የምልክት ዋጋዎችን ብቻ ነው ወይም «ሌሎች» ን ለመጫን «INPUT» ወይም «GROUP» ን ይጠቀማል. በዚህ መንገድ ስክሪፕትን መገልበጥ ዋናውን ማገናኛ ቅደም ተከተል ያካትታል. ቅድመ-አገናኝ አጫዋቹን ቅደም ተከተል ሙሉ ለሙሉ ለመለወጥ የ -T አማኙን ይጠቀሙ.

ስማቸው አንድ ፊደል ሲሆን, አማራጭ የአማራጭ ክርክሮችን ያለምንም ጣልቃ ገብነት መከተል ወይም ከሚጠየቅበት አማራጭ በኋላ እንደ ልዩ ፍልስፍና መስጠት አለባቸው.

ስማቸው ብዙ ሆሄያት, አንድ ወይም ከዚያ ሁለት አማራጮች ከአማራጭ ስም ቀድመው መምረጥ ይችላሉ. ለምሳሌ, -ይህ-ምልክት እና -trace-symbol ተመሳሳይ ናቸው. ማስታወሻ - በዚህ ደንብ ውስጥ አንድ ልዩ ሁኔታ አለ. በጥቁር 'o' የሚጀምሩ በርካታ ደብዳቤዎች አማራጮች በሁለት ዱካዎች ብቻ ሊፈጸሙ ይችላሉ. ይህ ከ --- አማራጭ ጋር ለመቀነስ ነው. ለምሳሌ -omagic የውጽአት ፋይሉን ወደ ምትሃት ያመራል ነገር ግን -omagic በ output ውስጥ የ NMAGIC ዕልትን ያዘጋጃል.

ለበርካታ-ፊደል አማራጮች የሚቀርቡ ክርክሮች ከአማራጭ ስም በእኩል ምልክት መለያየት ወይም ከሚያስፈልጉት አማራጮች በኋላ እንደ የተለዩ ክርክሮች የሚሰጡ መሆን አለባቸው. ለምሳሌ -trace-symbol foo እና --trace-symbol = foo እኩል ናቸው. የበርካታ-ፊደል አማራጮችን ልዩ ስም አጻጻፍ ተቀብለዋል.

ማሳሰቢያ - አገናኙን በተዘዋዋሪ መንገድ ከተጠቀመ በአዳጊው ሾፌር (ለምሳሌ gcc ) ከሆነ ሁሉም የአገናኝ መከታተያ መስመሮች አማራጮች በ -Wl ቀዳማዊ (ወይም አግባብነት ላለው የኮሞሪ ሾቨርደር አግባብነት ያለው ማንኛውም) ቅድመ-ቅጥያ ነው-

gcc -Wl, - startgroup foo.o bar.o -Wl, - endgroup

ይሄ አስፈላጊ ነው, ምክንያቱም አለበለዚያ የአጻጻፉ የአሽከርካሪያ ፕሮግራም ፕሮግራሙ አገናኙን በጸጥታ ሊያስቀምጠው ስለሚችል መጥፎ ግንኙነት ይፈጥርበታል.

በጂኤንዩ ማገናኛ አማካይነት ተቀባይነት ያለው አጠቃላይ የአጠቃቀም ትዕዛዞች ሰንጠረዥ ይኸውልዎት.

ቁልፍ ቃል

ይህ አማራጭ ለ HP / UX ተኳሃኝነት የተደገፈ ነው. የቁልፍ ቃል ክርክሩ ከዋና ማኅደሮች , ከጋራ ወይም ከነባሪው ውስጥ መሆን አለበት. -ከሂህቡከ በተግባር ከእውነተኛው አኳኋን ጋር- ተለዋዋጭ ነው , እና ሁለቱ ቁልፍ ቃላት በተፈጥሯዊ መልኩ ከዳይቲክ ጋር እኩል ናቸው. ይህ አማራጭ በማንኛውም ጊዜ ጥቅም ላይ ሊውል ይችላል.

- ሥነ ሕንፃ

--architecture = architecture

አሁን ባለው የ ld መለቀቅ ላይ, ይህ አማራጭ ለ Intel 960 የቤተሰብ ንድፈ ሐሳቦች ብቻ ጠቃሚ ነው. በእዚያ ዲ ኤን ዲ ውቅረት ውስጥ, የ " ሎጂክ ክርክር" በ 960 ቤተሰብ ውስጥ ያለውን የተለየ ንድፍ ይለያል, ይህም የተወሰኑ መከላከያዎች እንዲፈጠሩ እና የማህደሩ ቤተ-መጽሐፍት ፍለጋ መንገድን በማሻሻል ነው.

የወደፊቱ የ LD ልቀቶች ለሌሎች የሥነ-ጥበብ ቤተሰቦች ተመሳሳይ ትግበራ ሊደግፍ ይችላል.

-b የግቤት ቅርፀት

--format = input-format

ld ከአንድ በላይ የሆነ ነገርን ለመደገፍ ሊዋቀር ይችላል. የእርስዎ ld በዚህ መንገድ ከተዋቀረ, ይህንን አማራጭ የሚከተለው በግቤት ማዘዣ መስመር ላይ ለሚከተሉ የግቤት ፋይሎችን ሁለትዮሽ ቅርጸትን ለመለየት ይችላሉ. ተለዋጭ የአማራጭ ቅርጸቶችን ለመደገፍ ቢቀር እንኳን, አብዛኛውን ጊዜ በዚህ ማስታወቅ አለብዎት, እንደ ኤል ነባሪዎች እንደ ነባሪ የግቤት ቅርጸት በእያንዳንዱ ማሽኖች ላይ የተለመደ የተለመደ ቅርጸት ሆኖ ሊጠብቀው ይገባል. የግብአት ቅርጸት የጽሑፍ ሕብረቁምፊ, በ BFD ቤተ-መጽሐፍት የሚደገፍ የአንድ የተወሰነ ቅርጽ መጠሪያ ስም ነው. (የ Objdump -i ) ያሉትን ሁለት ዓይነት ቅርጸቶች መዘርዘር ይችላሉ.

ያልተለመደ የሁለትዮሽ ቅርጸት ያላቸው ፋይሎች የሚያገናኙ ከሆነ ይህንን አማራጭ መጠቀም ሊፈልጉ ይችላሉ. በተጨማሪም, - b ቅርፀቶችን ለመቀየር (ከተለያዩ ቅርፀቶች የወረቀት ፋይሎች ጋር በማገናኘት), - b የግቤት ቅርጸት በተናጠል ቅርጻቸው እያንዳንዱ የቡድን ፋይሎች.

ነባሪ ቅርፀት የተወሰደው ከአከባቢው ተለዋዋጭ "GNUTARGET" ነው.

እንዲሁም "TARGET" የሚለውን ትዕዛዝ በመጠቀም ከቅጽሁፍ ውስጥ የግቤት ቅርጸቱን መግለፅ ይችላሉ.

-c MRI-commandfile

--mri-script = MRI-commandfile

በ MRI በተሰራላቸው አገናኝ አድራጊዎች ላይ, ld በተለዋጭና የተከለከለ የትዕዛዝ ቋንቋ የተፃፈ የስክሪፕት ኮዶች ይቀበላሉ, በጂኤንዩኤል ማ ዶክሲ የ MRI ከተነፃፀር የስክሪፕት ፋይሎች ክፍል. ከሚያስመርሩት-c ከ MRI ስክሪፕት ፋይሎችን ማስተዋወቅ በአጠቃላይ ዓላማ ld ስክሪፕት ቋንቋ የተጻፉ የማሳያ ስክሪፕቶችን ለማካሄድ በቲ-T ን ይጠቀሙ. MRI-ccmdfile ከሌሉ , ld በማንኛውም L ውስጥ ባሉ አማራጮችን ውስጥ ይፈልገዋል .

-d

-dc

-dp

እነዚህ ሶስቱ አማራጮች እኩል ናቸው. በርካታ ቅርጾች ከሌሎች ማገናኛዎች ጋር ለመጣጣም ይደገፋሉ. ሊዛወር የሚችል የውጤት ፋይል ከተገለጸ (ለ-ለ) ቢገለጹም የጋራ ምልክቶችን ቦታ ይመድባሉ. የስክሪፕት ትዕዛዝ "FORCE_COMMON_ALLOCATION" ተመሳሳይ ውጤት አለው.

-መግቢያ

--entry = entry

እንደ ዋናው የመግቢያ ነጥብ ሳይሆን የመርጃ ፕሮግራምዎን ለመጀመሪያ ጊዜ አስፈፃሚነት እንደ ግልጽ መግለጫ ነው. ምልክት የተደረገባቸው ምልክቶች ከሌለ, አገናኙን እንደ ቁጥር ለመለመር ይሞክራል, እንደ የመግቢያ አድራሻ (ቁጥር 10 ላይ ይተረጎማል), በመሰመር ላይ 0 ላሉ ዋነ መስመሮች 16 ወይም መሪ 0 ለቤንት 8).

-ኤ

- export-dynamic

ተለዋዋጭ በሆነ ሊተገበር የሚችል ኤክስፕሎረር ሲፈጥሩ ሁሉንም ተምሳሌቶች ወደ ተለዋዋጭ ምልክት ሰንጠረዥ ያክሉ. ተለዋዋጭ ቀለም ሰንጠረዥ በሂደት ጊዜ ካሉ ነገሮች በፍፁም የሚታዩ የስምምነቶች ስብስብ ነው.

ይህን አማራጭ ካልተጠቀሙት, አረንጓዴው ምልክት ሰንጠረዥ በአብዛኛው አገናኙ ውስጥ በተጠቀሱት በአንዱ ተለዋዋጭ ነገር የተጠቆሙትን ምልክቶች ብቻ ነው የያዘው.

በፕሮግራሙ የተገለጹትን ተለዋዋጭ ገፆችን ለመመለስ "dlopen" የሚጠቀሙ ከሆነ ከሌሎች ጥቂት ተለዋዋጭ ነገሮች ይልቅ መርሐግብሩን በማገናኘት ይህንን አማራጭ መጠቀም ያስፈልጎታል.

እንዲሁም የውጤት ቅርጸቱ የሚደግፈው ከሆነ ምልክቶቹን ወደ ተለዋዋጭ ተምሳሌ ሰንጠረዥ መታከል እንዳለበት የስፖንስ ስክሪፕትን መጠቀም ይችላሉ. በ @ ref {VERSION} ውስጥ - የቨርሽን-ስክሪፕትን መግለጫ ይመልከቱ.

-ኤም

ትላልቅ እቃዎችን ያገናኙ. ይህ ነባሪውን የውጤት ቅርፀት ላይ ተፅዕኖ ያሳርፋል.

- ኤል

ትንሹን-አእዋፍ ነገሮች ያገናኙ. ይህ ነባሪውን የውጤት ቅርፀት ላይ ተፅዕኖ ያሳርፋል.

-ፈ

- ተመጣጣኝ ስም

የ ELF የተጋራ ነገር ሲፈጥሩ ውስጣዊ DT_AUXILIARY መስክ በተገለጸው ስም ላይ ያስቀምጡ. ይህ የተጋራው ነገር ምልክት ሰንጠረዥ እንደ ተለዋዋጭ ማጣሪያ በጋራው ስያሜ ስም ላይ በምልክት ሰንጠረዥ ላይ ሊሠራበት ይችላል.

ከዚህ በኋላ በማጣሪያ ነገር ላይ ከአንድ ፕሮግራም ጋር ካገናኙት, ፕሮግራሙን ሲያስገቡት, ተለዋዋጭ አገናኝው የ DT_AUXILIARY መስክ ይመለከታል. ተለዋዋጭ አገናኝ መፈተሻው ከማጣሪያው ነገር ማንኛውንም አይነት ምልክቶችን ካስተካከለ መጀመሪያው በጋራ ነገሩ ስም ውስጥ ፍቺ ይኑር ይጠይቃል. አንድ ካለ ካለ, በማጣሪያው ውስጥ ካለው ፍች ይልቅ ትርጉሙ ጥቅም ላይ ይውላል. የተጋራው የይዘት ስም መኖር የለበትም. ስለዚህ የተጋራው የቦታ ስም አንዳንድ የአፈፃፀም አማራጭ ተግባሮችን ለማራመድ ወይም ለማረም ወይም ለማሽን ለማቅረብ ሊያገለግል ይችላል.

ይህ አማራጭ ከአንድ ጊዜ በላይ ሊገለጽ ይችላል. የ DT_AUXILIARY ግቤቶች በትእዛዝ መስመር ላይ በሚታዩ ቅደም-ተከተል ይፈጠራሉ.

-F ስም

- የፊይር ስም

የ ELF የተጋራ ነገር ሲፈጥሩ, ውስጣዊ የ DT_FILTER መስኩን ወደተገለጸው ስም ያዋቅሩ. ይህ በተፈጠረው ነገር ላይ የተጋራው ፐሮግራም በምልክት ሰንጠረዥ እንደ ተጣጣፊ በጋራው ስያሜ ስም ሰንጠረዥ ላይ እንደ ማጣሪያ ጥቅም ላይ መዋል አለበት.

ከዚህ በኋላ በማጣሪያ ነገር ላይ አንድን ፕሮግራም ካገናኙት, ፕሮግራሙን ሲያስገቡት, ተለዋዋጭ አገናኝን የ DT_FILTER መስክ ያያል. ተለዋዋጭ አገናኝ እንደ የተለመደው የማጣሪያ ነገር ምልክት ሰንጠረዥን ይፈታል, ግን በተጋሩ ነገሩ ስም ውስጥ ከሚገኙት ትርጉሞች ጋር ይገናኛል. ስለዚህ የማጣሪያው ነገር በአይነተኛ ስም የተሰጡትን ምልክቶች አንድ ንዑስ ክፍል ለመምረጥ ሊያገለግል ይችላል.

አንዳንድ የቆዩ አያያዦች ለኤለ -ግብዓቶች እና ለውይይቱ ዕቃዎች ፋይሎችን ለማጣቀሻ -ፊደል ቅርፅን ለመለየት -F ን አማራጮችን በሙሉ ከመሥሪያ መሳሪያዎች ጋር ተጠቀሙ. የጂኤንዩ (GNU) አገናኝ መስተጋብር ለዚሁ አላማ ሌሎች ዘዴዎችን ይጠቀማል-- b , --format , --oformat አማራጮችን, "TARGET" ትዕዛዞችን በሚዛመዱ ስክሪፕቶች እና "GNUTARGET" አካባቢ ተለዋዋጭ. የጂኤንዩ (GNU) ማገናኛ ኤኤፍኤ የተጋራ ንብረትን በማይፈጥርበት ጊዜ -F አማራጭን ይተዋል .

-fini ስም

የ ELF ፍቃድ ወይም የተጋራ ነገር ሲፈጥሩ DT_FINI ወደ ተግባሩ አድራሻ በመጨመር ኤፍኤምኢ ወይም የተጋራው እቃ ሲጫነው ሲደውሉ ይደውሉ. በነባሪ, አገናኝ አጣራው "_fini" ን ለመደወል ተግባር ይጠቀማል.

- g

ችላ ተብሏል. ከሌሎች መሳሪያዎች ጋር ተኳሃኝነትን ያቀርባል.

የጂ እሴት

--gpsize = value

መጠኑን ለማስኬድ የ GP መመዝገቢያ በመጠቀም የሚፈለገውን ከፍተኛ መጠን ያላቸውን ነገሮች መጠን ያዘጋጁ. ይህ ለትርፍ ቅርጸት ቅርፀቶች ብቻ ትልቅ እና ትናንሽ ነገሮችን ወደ የተለያዩ ክፍሎች (ሜፕስ / ኢኮፍ) እንደ ሚያሳይት ያገለግላል. ይሄ ለሌሎች የንብረቶች የፋይል ቅርጸቶች ይተዋወቃል.

ስም

-ስም = ስም

የ ELF የተጋራ ነገር ሲፈጥሩ ውስጣዊ የ DT_SONAME መስኩን ወደተጠቀሰው ስም ያዋቅሩ. አንድ ኤግዘኪይተር ከ DT_SONAME መስክ ጋር ከተጋራ ነገር ጋር ከተገናኘ በኋላ ኤግዘኪያው ሲሄድ ተለዋዋጭው አገናኝ ለአገናኝው የተሰጠውን የፋይል ስም በመጠቀም በ DT_SONAME መስክ የተገለጸውን የተጋራውን ነገር ለመጫን ይሞክራል.

-i

አንድ ወጥነት ያለው አገናኝ (እንደ አማራጭ -r ) ተመሳሳዩ.

የውስጥ ስም

የ ELF ፍቃድ ወይም የተጋራ ነገር ሲፈጥሩ, DT_INIT ወደ ተግባርዎ አድራሻ በመጨመር ኤምጂኤም ወይም የተጋራ ነገር ሲጫን ይደውሉ. በነባሪ, አገናኝ አገናኙ "መደወልን" እንደ ጥሪ ተግባር ይጠቀምበታል.

-l ማህደር

--library = archive

የማህደር ፋይል ማህደሮችን ለማገናኘት ፋይሎች ዝርዝር ውስጥ ያክሉ. ይህ አማራጭ በማንኛውም ጊዜ ጥቅም ላይ ሊውል ይችላል. ld ለእያንዳንዱ መዝገቦች ለ "libarchive.a" ክስተቶች በመንገድ ዝርዝሩ ውስጥ የሚፈልገውን ዝርዝር ይፈልገዋል.

የተጋሩ ቤተ-መጽሐፍትን የሚደግፉ ስርዓቶች ላይ, ld ከ ".a" ውጪ የሆኑ ቅጥያዎችን ለማግኘት ቤተ-መጽሐፍትን ሊፈልግ ይችላል. በተለይም በ ELF እና SunOS ስርዓቶች ላይ, «l> የ« .a »ቅጥያ ከመፈለጊያው በፊት« .so »የተባለ ቤተ-መጽሐፍት ማውጫን ፈልጎ ያገኘዋል. በተናጠል, «.so» ቅጥያ የተጋራ ቤተ-መጽሐፍትን ያመለክታል.

አገናኝ አገናኙን በትእዛዝ መስመር ላይ ከተጠቀሰበት አካባቢ አንድ ጊዜ ብቻ በመፈለግ ላይ ያደርገዋል. መዛግብቱ በማጠራቀሚያ መስመር ላይ በማህደረ ትውስታው ውስጥ በሚታየው አንድ ነገር ላይ ያልተገለጸ ምልክትን ይገልፃል, አገናኙን ከማህደሩ ውስጥ ተገቢውን ፋይል (ኦች) ያካትታል. ነገር ግን, በኋላ ላይ በሚመጣው ትዕዛዝ መስመር ላይ ያልተገለፀው ምልክት, አገናኝን እንደገና ለመፈለግ ማህደሩን አይፈጥርም.

The- (ጥቆማውን ለፍለጋ ማህደሮች በርካታ ጊዜ ለማስገደድ አማራጭ ነው.

በትእዛዝ መስመር ላይ አንድ አይነት የመዝገብ መዝገብ ብዙ ጊዜ ሊሰጡት ይችላሉ.

ይህ አይነት የማህደር ፍለጋ ለዩኒክስ አገናኞች መደበኛ ነው. ሆኖም ግን, ld OnAIX ን እየተጠቀሙ ከሆነ, ከ AIX አገናኝ አቀማመጥ የተለየ እንደሆነ ያስተውሉ.

- ላብ ዶር

--library-path = searchdir

መከታተያ ቤተመፃህፍት እና ኤል ኤል ቁጥጥር ስክሪፕት የሚፈልጉት ዱካዎች ወደ ዱካዎች ዝርዝር ዱካ አክል. ይህን አማራጭ ብዙ ጊዜዎችን ሊጠቀሙበት ይችላሉ. ማውጫዎቹ በትእዛዝ መስመር ላይ የተገለጹበትን ቅደም ተከተል ይፈለጋሉ. በትእዛዝ መስመር ላይ የተገለጹ ማውጫዎች ነባሪ ማውጫዎች ከመፈለጋቸው በፊት ይፈለጋሉ. ሁሉም አማራጮች አማራጮች የሚታዩበት ቅደም ተከተል ቢኖረውም ሁሉም - L አማራጮች ለሁሉም አማራጮች ሊተገበሩ ይችላሉ.

Searchdir በ "=" ቢጀምር, "=" አገናኝ በሲሶሮ ቅድመ ቅጥያ ይተካል.

ነባሪው የመፈለሻዎች ፍለጋ ( ከላይ-L ጋር ሳይገለጹ ) በማንፃም ሁነታ ላይ ld እየተጠቀመበት እና በአንዳንድ ሁኔታዎችም እንዴት እንደተዋቀረ ይወሰናል.

ዱካዎች በ "SEARCH_DIR" ትዕዛዝ አገናኝ አጻጻፍ ውስጥ ሊገለጹ ይችላሉ. በዚህ መንገድ የተገለጹ ማውጫዎች በትዕዛዝ መስመሩ ላይ የአገናኝን ስክሪፕት በሚታየው ነጥብ ይፈለግባቸዋል.

-emulation

የፈጠራ ማገናኛን ያስመስሉ. በ -verbose ወይም -V አማራጮች ያሉትን ያሉትን ማሞገስ ይችላሉ.

« -m» አማራጭ ጥቅም ላይ ካልዋለ ቅጅው ከተወሰደ "LDEMULATION" የአካባቢ ተለዋዋጭ ነው የተወሰደ ከሆነ.

አለበለዚያ ነባሪ ተመስርተው አገናኝ ነባሪው እንዴት እንደተዋቀረ ይወሰናል.

-ሜ

--print-map

የመግቢያ ካርታ ከመደበኛ ውጽዓት ጋር ያትሙ. አንድ አገናኝ ካርታ ስለአንድ አገናኝ መረጃን ያቀርባል, የሚከተሉትን ያካትታል-

*

የነገሮች ፋይሎች እና ምልክቶች ወደ ማህደረ ትውስታ የሚደረጉባቸው.

*

የተለመዱ ምልክቶች እንዴት እንደሚመደቡ.

*

በ "አገናኙ ውስጥ የተካተቱ ሁሉንም የመዝገብ አባላት, የመዝገፊቱን አባል እንዲገባ ያደረገውን ምልክት ጭምር.

- n

- nagag

የክፍሎችን የገፅ ቅንብርን ያጥፉ እና ከተቻለ ውጤቱን እንደ «NMAGIC» ምልክት ያድርጉ.

-N

- - ሜጋክ

የጽሑፍ እና የውሂብ ክፍሎች ሊነበብ እና ሊፃፍ የሚችል ያዘጋጁ. እንዲሁም ገጹን አይስጠኑ-የውሂብ ክፍሉን አሰፈረ, እና በተጋሩ ቤተ-ፍርግሞች ላይ ማገናኘት አቦዝን. የውጫዊ ቅርጸቱ የዩኒክስ ቅጥ አስማት ቁጥሮች የሚደግፍ ከሆነ ውጤቱን እንደ «OMAGIC» ምልክት ያድርጉ.

- - በጭራሽ

ይህ አማራጭ አብዛኛዎቹን የ -N አማራጮች አሉታዊ ተጽዕኖ ያሳርፋል . የጽሑፍ ክፍሉ ተነባቢ-ብቻ እንዲሆን ያስቀምጣል, እና የውሂብ ክፍሉ ገጾችን መስመር እንዲይዝ ያደርገዋል. ማሳሰቢያ - ይህ አማራጭ በተጋሩ ቤተ-መጽሐፍት ላይ ማገናኘት አይፈቅድም. ለመጠቀም - ተለዋዋጭ ለሆነ.

-o ውፅዓት

--output = ውፅዓት

ld ላቀረበው ፕሮግራም ስም ውህደት ይጠቀሙ. ይህ አማራጭ ካልተገለጸ, a.out ስም በነባሪነት ይጠቀማል. የስክሪፕት ትዕዛዝ "OUTPUT" የውጽአት ስም ስሙን ሊጠቁም ይችላል.

-ኦ ደረጃ

ደረጃ ከዜሮ በላይ የሆኑ ቁጥራዊ እሴቶች ከሆነ ደረጃውን ይለውጣል. ይህ በጣም ረዘም ሊወስድ ስለሚችል ምናልባትም የመጨረሻውን ሁለትዮሽ ብቻ ሊነቃ ይችላል.

-q

--emit-relocs

ተዘዋውረው የተዘጉ ክፍሎችን እና ይዘቱን ሙሉ ተያያዥ በሆኑ ማለፊያዎች ይተው. የልኡክ ጽሁፍ ትንተና እና ማጎልበቻ መሳሪያዎች ይህን መረጃ የሚያስፈልጋቸው ሊሆኑ ይችላሉ. ይህ ደግሞ በትልቅ አሠራሮች ውስጥ ያመጣል.

ይህ አማራጭ በአሁኑ ጊዜ በ ELF መድረኮች ላይ ብቻ ነው የሚደገፈው.

- r

- ተዛማጅነት

ተመጣጣኝ ውጤት (output) ሊፈጥሩ ይችላሉ - ማለትም, እንደ ግብዓት ግብዓት ሆኖ ሊያገለግለው የሚችል የውጤት ፋይልን ማመንጨት. ይህ አብዛኛውን ጊዜ በከፊል ተያያዥነት ተብሎ ይጠራል. እንደ ተመጣጣኝ ውጤት, መደበኛ የዩኒክስ ማታ ቁጥሮችን በሚደግፉ አካባቢዎች, ይህ አማራጭ የውጤቱን ፋይል አስማተኛ ቁጥጥር "OMAGIC" ያስቀምጣል. ይህ አማራጭ ካልተገለጸ ፍጹም የሆነ ፋይል ታትሟል. የ C ++ ፕሮግራሞችን ሲያገናኙ, ይህ አማራጭ ለግንባታዎች ማጣቀሻ አይፈጥርም . ይህንን ለማድረግ -Ur .

አንድ የግቤት ፋይል የውጤት ፋይልው ተመሳሳይ ቅርጸት ከሌለው, የግቤት ፋይሉ ምንም መጓጓዣ ካላገኘ ብቻ ከፊል ማገናኘቱ ይደገፋል. የተለያዩ የውጤት ቅርፀቶች ተጨማሪ ገደቦች ሊኖራቸው ይችላሉ; ለምሳሌ አንዳንድ "a.out"-የተመሠረቱ ቅርፀቶች በሁሉም የግቤት ፋይሎችን ከፊል ግብዓቶች ጋር በከፊል ማገናኘትን አይደግፉም.

ይህ አማራጭ -i .

-R የፋይል ስም

--just-symbols = filename

የምልክት ስምዎችን እና አድራሻቸውን ከፋይነመሉ ላይ ያንብቡ, ነገር ግን በውጩ ውስጥ አያስተላልፉ ወይም አይጨምሩ. ይሄ የውቅጫ ፋይልዎ በሌላ ፕሮግራሞች ውስጥ ለተወሰኑት የትኩረት አካላት በምሳሌነት እንዲያሳያቸው ያስችላቸዋል. ይህን አማራጭ ከአንድ ጊዜ በላይ ሊጠቀሙት ይችላሉ.

ከሌሎች የኤልኤፍ አባሪዎች ጋር ተኳሃኝነት,-- R አማራጭ ከፋይል ስም ይልቅ, የመጠጫ ስም ከሆነ, እንደ--path አማራጭ ይታያል.

-እ

- strip-all

ከውጤቶች ፋይል ውስጥ ሁሉንም የምልክት መረጃ ይጥቀሱ.

-

- strip-debug

ከውጤት ፋይልው የስህተት አርታዒ ምልክት መረጃ (ሁሉንም ምልክት አይደለም) ያጥፉ.

-ሁ

--trace

ኤል ሲ የሚያስፈልገውን የግብዓት ስሞችን ያትሙ.

-T የታይፍ ፋይል

--script = scriptfile

የ "ስክሪፕት" ፋይሎችን እንደ አገናኙን ተጠቀም. ይህ ስክሪፕት የ ld 's ነባሪ አገናኝ አጻጻፍ ( በመደመር ሳይሆን) ላይ ይተካዋል , ስለዚህ የፍለጋ ቁልፉ የውጤቱን ፋይል ለመግለፅ አስፈላጊውን ሁሉ መለየት አለበት. በዚህ ሰነድ ውስጥ የስክሪፕት ፋይል ካልኖረ "ld" በማንኛውም የቅድመ-L አማራጮች ውስጥ የተገለጹትን ማውጫ ውስጥ ይፈልገዋል . በርካታ -T አማራጮች ይከማሣሉ.

-u ምልክት

- ተለይቶ የተቀመጠ = ምልክት

በውጫዊው ፋይል ውስጥ ያልተገለጸ ምልክት ሆኖ ለምርጫ የሚገባው ምልክት ያስገድዱት. ይህንን ማድረግ ለምሳሌ የተጨማሪ ሞዴሎችን ከመደበኛ ቤተ-መጽሐፍት ጋር ሊያገናኝ ይችላል. -u ሊባዙ የማይችሉ ምልክቶችን ለማስገባት ከተለያዩ አማራጭ አማራጮች ጋር ሊደገም ይችላል. ይህ አማራጭ ከ "EXTERN" አገናኝ አገናኝ የስክሪፕት ትዕዛዝ ጋር እኩል ነው.

-ኡር

ለ C ++ ኘሮግራም ለሌላ ማንኛውም ነገር, ይህ አማራጭ ከ-r ጋር እኩል ነው: ሊተኮረፍ የሚችል ውጤት ያመነጫል-ማለትም, በተራው ወደ ግብአት ያገለግላል. የ C ++ ፕሮግራሞችን ሲያገናኙ -Ur ከግንባታ አቅራቢዎች ማጣቀሻን ይፈታል , ይልቁንም እንደ -r . ለመጠቀም- አይነካም በ-ፋይሎች የተገናኙዋቸው ፋይሎች -Ur ; አንዴ የግንባታ ሠንጠረዥ ከተገነባ በኋላ ሊታከል አይችልም. ለ-የመጨረሻው ከፊል አገናኝ ብቻ ይጠቀሙ, እና -r ለሌሎች.

- ዩኒኒክ [= SECTION ]

ለያንዳንዱ የሙት ልጅ ግብዓት ክፍል SECTION , ወይም ደግሞ የውጫዊ ልዩነት የ SECTION ክርክር ቢጠፋበት የተለየ የምርጫ ክፍል ይፍጠሩ. የሽሙጥ ክፍሉ በአንዱ አገናኝ ስክሪፕት ውስጥ አልተጠቀሰም. በትርጉም ትዕዛዝ ላይ ይህን አማራጭ በርካታ ጊዜ ሊጠቀሙበት ይችላሉ. በተለመደው ተመሳሳይ የግቤት ክፍሎችን አንድ አይነት ተመሳሳይ ስም በማዋሃድ, በአስተያየት ስክሪፕት ውስጥ የውጤት ክፍሎችን በመመደብ ይከላከላል.

- ቨርዥን

-V

ld የስሪት ቁጥሩን ያሳዩ . የ- አማራጭ የድጋፍ ሞገዶችን ይዘረዝራል.

-ክስ

--discard-ሁሉም

ሁሉንም የአካባቢ ምልክቶች ሰርዝ.

-X

--የዳይድ -አካባቢ ህዝቦች

ሁሉንም ጊዜያዊ አካባቢያዊ ምልክቶች ሰርዝ. ለአብዛኞቹ ዒላማዎች ይህ ስሞቹ ከ L ጋር የሚጀምሩ ሁሉም የአካባቢ ምልክቶች ናቸው.

-symbol

ምልክት - ምልክት = ምልክት

የትኛው ምልክት የተያያዘበትን እያንዳንዱን የተገናኘ ፋይልን ያትሙ. ይህ አማራጭ ብዙ ጊዜ ሊሰጥ ይችላል. በብዙ ስርዓቶች ላይ አንድ ሰረዘዘብጥ ማዘጋጀት ያስፈልገዋል.

ይህ በአገናኝዎ ውስጥ ያልተጠቀሰ ምልክት ሲኖርዎት ግን ማጣቀሻው ከየት እንደመጣ አያውቅም.

-ሄ መንገድ

ወደ ነባሪ ቤተ-መጽሐፍት ፍለጋ ዱካ መንገድ አክል. ይህ አማራጭ ለ Solaris ተኳሃኝነት ይገኛል.

-z ቁልፍ ቃል

ዕውቅና የተሰጣቸው ቁልፍ ቃላቶች "initfirst", "interpos", "loadfltr", "nodefaultlib", "nodelete", "nodlopen", "nodload", "now", "origin", "combreloc", "nocombreloc" እና "nocopyreloc ". ሌሎች ቁልፍ ቃላት ለ Solaris ተኳሃኝነት ይተዋሉ. "initfirst" በመጀመሪያ ማንኛውም ነገር ከማናቸውም ሥራዎች በፊት በቅድሚያ እንዲነቃ ያደርገዋል. "ማረፊያ" የሚለው ምልክት ከምዕራፊያው ይልቅ ዋናው ኤግዘኪዩተሮቹን የሚያስተካክለው ነገርን ያሳያል, "loadfltr" ማለት የእቃው ፈጣሪዎች በፍጥነት በሚሰሩበት ሰዓት ላይ ነው. "nodefaultlib" የዚህን ነገር ጥገኝነት ፍለጋ ችላ ብሎ የተመለከተውን ነገር ያመለክታል. ማንኛውንም ነባሪ ቤተ ፍርግም የፍለጋ ጎዳናዎች. «nodelete» ማለት እቃው በስራ ሰዓት መጫን የለበትም. "nodlopen" ለ "dlopen" የማይገኝበትን ቦታ ያመለክታል. "nodump" ማለት ነባሩ በ "dldump" መገልበጥ አይችልም. "አሁን" ማለት ያልታከመው የሩጫ አስገዳጅ እቃዎች ጋር ያመላክታል. "መነሻ" የሚያመለክተው ነገር $ ነገር ግን ሊሆን ይችላል. "defs" ያልተሰየሙ ምልክቶችን አይፈቅድም. "muldefs" በርካታ ትርጓሜዎችን ይፈቅዳል. "combreloc" ብዙ የዝግጅት ክፍሎችን ያዋህዳል እና የተለመዱ ምልክቶችን ፍለጋ ማሸጋገርን ለማረጋገጥ ይደረድራል.

«nocombreloc» የበርካታ የዝግጅት ፍችን ማዋሃድ ያሰናክላል. "nocopyreloc" የኮፒ ማቆያዎችን ማዘጋጀት ያሰናክላል.

- ( መዝገቦች -)

--start-group archives - end-group

መዛግብቶቹ የማህደር ፋይሎች ዝርዝር መሆን አለባቸው. ምናልባት ግልጽ የሆኑ የፋይል ስሞች ወይም -l አማራጮች ሊሆኑ ይችላሉ.

ያልተገለጹ ማጣቀሻዎች እስከሚፈጥሩ ድረስ የተገለጹት መዛግብት በተደጋጋሚ ተዳሷል. በአብዛኛው, አንድ ማህደር በሚፈለገው ትዕዛዝ ውስጥ በተሰጠው ትዕዛዝ ውስጥ ብቻ ይፈለጋል. በትርጉም ትዕዛዝ ውስጥ ኋላ ላይ በሚታየው በመዝገብ ውስጥ በሚታየው ማህደር ውስጥ የተጠቀሰውን ያልተለወጠ ምልክት ለመፍታት በዚህ ማኅደር ውስጥ አንድ ምልክት አስፈላጊ ከሆነ, አገናኙን ያንን ማጣቀሻ ሊያስተካክለው አይችልም. ማህደሩን በመደጎም ሁሉም ማጣቀሻዎች እስኪፈቱ ድረስ ሁሉም ተደጋጋሚ ምርመራ ይደረግባቸዋል.

ይህንን አማራጭ መጠቀም ከፍተኛ የሥራ አፈጻጸም ዋጋ አለው. እሱን መጠቀም በጣም ጥሩ ነው, በሁለት ወይም ከሁለት በላይ በሆኑ መዝገቦች መካከል የማይቻል የሚባዙ የክብደት ማጣቀሻዎች ሲኖሩ ብቻ.

- accept-unknown-input-arch

- ተቀባይነት የለውም - ያልታወቀ-ግቤት

አገናኙን የማይታወቅ የግብታዊ ፋይሎችን ለመቀበል አገናኙን ይነግረዋል. ግምቱም ተጠቃሚዎች ምን እየሰሩ እንደሆነ እና በእነዚህ ባልታወቁ የግቤት ፋይሎችን ሆን ብለው ማገናኘት ይፈልጋሉ. ይህ አገናኝ ከህትመት 2.14 በፊት የነባሪ ባህሪ ነበር. ከተለቀቀ 2.14 መውጣት ነባሪ ባህሪ እነዚህን የግቤት ፋይሎችን አለመቀበል ነው, ስለዚህ የአሮጌውን ባህሪ ለመመለስ - - Accept-unknown-input-arch አማራጭ ተጨምሯል.

-assert ቁልፍ ቃል

ይህ አማራጭ ለ SunOS ተኳዃኝነት ችላ ይባላል.

-ዳማዊ

-ዲ

-call__ የተጋራ

በታዳጊ ቤተ-መጻሕፍት ላይ አገናኝ. ይሄ የተጋራ ቤተ-መጽሐፍት የሚደገፍባቸው የመሣሪያ ስርዓቶች ላይ ብቻ ትርጉም ያለው ነው. ይህ አማራጭ በመደበኛ መድረኮች ላይ ነባሪ ነው. የዚህ አማራጭ ልዩነቶች ከተለያዩ ስርዓቶች ጋር ተኳሃኝነት ናቸው. ይህን አማራጭ በትእዛዝ መስመር ላይ በርካታ አማራጮችን ሊጠቀሙ ይችላሉ - ቤተ-መጽሐፍት ለመፈለግ አማራጮች ላይ ተፅዕኖ ያሳርፋል.

ቡግ

በተለዋዋጭ ክፍል ውስጥ በ "DT_FLAGS_1" መግቢያ ውስጥ የ "DF_1_GROUP" ጥቆማውን ያዘጋጁ. ይሄ የአሁኑ ጊዜ አጣቃሹን በዚህ የነቃ ፍለጋዎች ላይ እና ጥንካሬዎቹ በቡድኑ ውስጥ ብቻ እንዲከናወኑ ያደርጋል. - no-undefined የሚያመለክተው. ይህ አማራጭ የሚጋራው ቤተ- ፍርግምን የሚደግፍ የኤልኤፍኤ መርሃ - ግብሮች ብቻ ነው.

-ስቲካዊ

-dn

-no-shared

ሳይንሳዊ

በተጋሩ ቤተ-ፍርግሞች አያገናኙን. ይሄ የተጋራ ቤተ-መጽሐፍት የሚደገፍባቸው የመሣሪያ ስርዓቶች ላይ ብቻ ትርጉም ያለው ነው. የዚህ አማራጭ ልዩነቶች ከተለያዩ ስርዓቶች ጋር ተኳሃኝነት ናቸው. ይህን አማራጭ በትእዛዝ መስመር ላይ በርካታ አማራጮችን ሊጠቀሙ ይችላሉ - ቤተ-መጽሐፍት ለመፈለግ አማራጮች ላይ ተፅዕኖ ያሳርፋል.

-ባዕብራዊ

የተጋራ ቤተ-ፍርግም ሲፈጥሩ ለዓለም አቀፉ ምልክቶችን ማጣቀሻ በጋራው ቤተ-ፍርግም ውስጥ ካለ ትርጓሜ ጋር, ካለ. በተጋራው ቤተ-ፍርግም ውስጥ ፍቺን ለመሻር በተጋራው ቤተ-መጽሐፍት ላይ የተያያዘ ፕሮግራም ሊፈጠር ይችላል. ይህ አማራጭ የሚጋራው ቤተ-ፍርግምን በሚደግፉ የ ELFplatforms ላይ ብቻ ነው.

- check-sections

- ያለመመልከት ክፍሎችን

የአገናኝ መንገዱ ክፍተቶች አለመኖራቸውን እንዲያጣሩ ከተመደቡ በኋላ ክፍሉን እንዳያጣሩ ይጠይቃል. በተለምዶ አገናኙን ይህንን ሒደት ያከናውናል, እና ከማናቸውም መደብሮች ጋር የሚያገናኙ ከሆነ ተስማሚ የስህተት መልዕክቶችን ያቀርባል. አገናኙው ስለእውቀት የሚያውቀው ሲሆን በክፍል ውስጥ ያሉትን ክፍሎች ክፍሎችን ያደርጋል. ነባሪ ባህሪው የትእዛዝ መስመር መቀያየር - መቆጣጠሪያዎችን በመጠቀም ወደነበረበት ሊመለስ ይችላል.

- ሜክ

የመስቀለኛ ማመሳከሪያ ሰንጠረዥ አስገባ. የአስተያየት የካርታ ፋይል ከተፈጠረ, የመስቀለኛ ማመሳከሪያ ሰንጠረዥ ወደ የካርታ ፋይል ይታተም. አለበለዚያ በመደበኛ ውጽዓት ላይ ይታተማል.

ጠረጴዛው ቅርጸት ሆን ብሎ ቀላል በሆነ መልኩ በስክሪፕት ሊሰራ ይችል ይሆናል. ምልክቶቹ በታተሙ እና በስም የተደረደሩ ናቸው. ለእያንዳንዱ ምልክት የአንድ የፋይል ስም ዝርዝር ይሰጣል. ምልክቱ ከተገለጸ, የተዘረዘረው የመጀመሪያው ፋይል ፍቺው ቦታ ነው. የተቀሩት ፋይሎች ለምልክት ምልክቶችን ይዘዋል.

- ምንም-ፍቺ-የጋራ

ይህ አማራጭ የአድራሻዎችን የተለመዱ ምልክቶች ይገድበዋል. የስክሪፕት ትዕዛዝ «INHIBIT_COMMON_ALLOCATION» ተመሳሳይ ውጤት አለው.

- no-define-common የሚለውን አማራጭ ለውጤት ዓይነታ አይነት የመልዕክት ምርጫን የተለመዱ ምልክቶችን (አድራሻዎችን) ለማስተላለፍ ውሳኔውን መቀነስ ያስችላል. አለበለዚያም የማይንቀሳቀስ የውጤት አይነት ለጋራ መለያዎች አድራሻዎችን መፈረጅን ይፈጥራል. - no-define-common መጠቀም ከጋራ ቤተ-መጽሐፍት ውስጥ የተመደቡ የተለመዱ ምልክቶች በዋናው ፕሮግራም ውስጥ ብቻ እንዲመደቡ ይደረጋል. ይህ በተጋራው ቤተ-ፍርግም ውስጥ ጥቅም ላይ ያልዋሉ የተባዛ ቦታን ያስወግዳል, እንዲሁም ለትግበራ መፍታት ምሳሌ ልዩ ፍለጋ ፍለጋዎች ብዙ ተለዋዋጭ ሞዴሎች ሲኖሩ ለተጋለጡ ማባዛቶች ማንኛውንም የተጋለጥን ግራ መጋባት ይከላከላል.

--defsym symbol = expression

በውጤት ፋይል ውስጥ አለምአቀፍ ምልክት በመግለጽ ውስጥ የተሰጠውን ትክክለኛ አድራሻ ይፍጠሩ. በትርጉም ትዕዛዝ ውስጥ በርካታ ምልክቶችን ለመወሰን ይህንን አማራጭ እንደ አስፈላጊነቱ ብዙ ጊዜ ሊጠቀሙበት ይችላሉ. በዚህ አውድ ውስጥ ለገጽ አገላለጽ የተወሰነ የስነ-ቁጥር ቅርጸት ይደገፋል-የሄክሳዴሲማል ቋሚ ቁጥርን ወይም የአንድ ነባር ምልክት ስም መስጠት ይችላሉ, ወይም የሄክዴዴሲማል ቋሚዎችን ወይም ምልክቶችን ለመጨመር ወይም ለመቀነስ + መጠቀም እና መቀነስ ይችላሉ. ይበልጥ ዝርዝር የሆኑ መግለጫዎችን ከፈለጉ, የአስተያየጡን የትዕዛዝ ቋንቋ ከ ስክሪፕት ለመጠቀም ይሞክሩ. ማሳሰቢያ: በምልክት , በእኩል ምልክት (`` = '') እና የሒሳብ ሐረግ መካከል ምንም ነጭ ቦታ መኖር የለበትም.

--demangle [= ቅጥ ]

- ኖ-ማስማሌል

እነዚህ አማራጮች የስህተት መልዕክቶች በስህተት መልዕክቶች እና ሌላ ውፅዓት ላይ ለማስመሰል ይቆጣጠራሉ. አገናኙን ለማራመድ በሚታወቀው ጊዜ የስም ቅርጾችን በሚነበብ ፋሽን ላይ ለማቅረብ ይሞክራል: በነባራዊ የፋይል ቅርጸት ጥቅም ላይ የሚውሉ ከሆነ እና የ C ++ የተንቆጠቆሙ ምልክቶችን በተጠቃሚ ሊጡ የሚችሉ ስሞች ውስጥ ይቀይራል. የተለያዩ ማቀናበሪያዎች የተለያዩ የተንጠለጠሉ ቅጦች አሉት. የአማራጭ የፍሬንጌንግ ክርክር ለአካሃሚዎ ተገቢ የአሰቃቂ ስልት ለመምረጥ ጥቅም ላይ ሊውል ይችላል. የአካባቢ አገናኝ ተለዋዋጭ COLLECT_NO_DEMANGLE ከተዘጋጀ አገናኙን በነባሪነት ይቦደዋል . እነዚህ አማራጮች ነባሪውን ለመሻር ሊያገለግሉ ይችላሉ.

- ተለዋዋጭ-አገናኝ አድራጊ

የነባራዊ አገናኝ መጠሪያውን ያዘጋጁ. ይህ በተፈጥሮ የተገናኙ ኤልኤፍ ኤፍኤፍቶች ሲፈጠሩ ብቻ ትርጉም ይሰጣል. ነባሪ ተለዋዋጭ አገናኝ ሁልጊዜ ትክክል ነው; ምን እያደረጉ እንዳሉ እስኪያውቁ ድረስ ይህንን አይጠቀሙ.

- የተያዙ ድግዶች

ይህ አማራጭ በ MIPS የተከተተ PIC ኮድ ጋር በማገናኘት በጂኤምዩ ኮምፕተር እና ማቀናበሪያ በዲጂታል አማራጭ የተፈጠረ ነው. አገናኝ አጣዳፊው በስራ ሰዓት ጥቅም ላይ ሊውል የሚችል ሰንጠረዥን ለመፍጠር ያስችል ዘንድ በስታቲክ የተጀመሩ ማናቸውንም መረጃዎች ለማዛወር ያስችላቸዋል. ለዝርዝሩ ፈተናውን በ testuit / ld-empic ውስጥ ይመልከቱ.

- ፍቃደኛ ማስጠንቀቂያዎች

ሁሉንም ማስጠንቀቂያዎች እንደ ስህተቶች ያዝ .

- force-exe-suffix

የውጽአት ፋይል የ .exe ቅጥያ ያለው መሆኑን ያረጋግጡ.

ሙሉ በሙሉ የተገነባ የውጤት ፋይል የ «. Exe » ወይም « .dll » ድህረ ቅጥያ ከሌለው አገናኙን የውጤቱን ፋይል ከአንድ «.exe» ድህረ ቅጥያ ወደ ተመሳሳይ ስም ለመገልበጥ ያስገድደዋል. ይህ አማራጭ በማይክሮሶፍት ዊንዶውስ አስተናጋጅ ላይ ያልተስተካከሉ የዩኒስ ውስጠ- ቁምፊዎችን ሲጠቀሙ ጠቃሚ ነው. ምክንያቱም አንዳንድ የዊንዶውስ ስሪቶች በ ".exe" ድህረ-ገጽ ውስጥ ካልጨረሱ በስተቀር ምስል አይሰሩም.

- ኖ-ግ-ቁጥሮቹ

--gc-sections

ጥቅም ላይ ያልዋሉ የግቤት ክፍሎች ቆሻሻ ስብስብ ያንቁ. ይህን አማራጭ የማይደግፉ ኢላማዎች አሉ. ይህ አማራጭ ከ -r ጋር ተኳኋኝ አይደለም, እንዲሁም ከነዳጅ አገናኝ ጋር አይሆንም. ነባሪ ባህሪ (ይህንን የቆሻሻ ስብስብ ማከናወን አለመቻል) በትእዛዝ መስመር ላይ - n-gc-sections በመምረጥ ሊመለስ ይችላል.

--ፍፍል

በመደበኛ ውፅአት እና በመውጫ ላይ የትእዛዝ-መስመር አማራጮችን ማጠቃለያ ያትሙ.

--target-help

በመደበኛ ውጽአት እና መውጫ ላይ የሁሉም ዒላማ አማራጮች ማጠቃለያ ማተም.

ካርታ - ካርታ

የማጣቀሻውን ካርታ ወደ ፋይል ካርታ ፋይል ያትሙ . የ-M አማራጭን, ከላይ ይመልከቱ.

- - አያስፈልግም-ማህደረ ትውስታ

ld የግቤት ፋይሎችን በማውጫ ማህደረ ትውስታዎች ውስጥ በማሸብለብ የማህደረ ትውስታ አጠቃቀም በፍጥነት ይሞላል. ይህ አማራጭ እንደአስፈላጊነቱ የምልክት ሰንጠረዥን በማንበብ ለማህደረ ትውስታ አጠቃቀም የበለጠ ለማመቻቸት ነው. ትልቅ ፋይልን (ኤፕራይል) በማገናኘት ላይ እያለ ኤልዲ ማኀደረ ትውስታ ሲያልቅ ይህንን ማድረግ ሊያስፈልግ ይችላል.

- -ለ-ያልተገለፀ

-z ነ

በመደበኛነት ያልተገለጸ የተጋራ ቤተ-ፍርግም ሲፈጠሩ ያልተለመዱ ምልክቶች ተፈቅደዋል እና በሂደት ጊዜ አሠሪው መፍትሄ ያገኛሉ. እነዚህ አማራጮች ያልተለመዱ ምልክቶችን አይቀበሉም.

- ሁሉን-በርካታ-ትር

-z muldefs

በተለምዶ አንድ ምልክት ለበርካታ ጊዜያት ሲተረጎም, አገናኝ አጣዳፊ ስህተት ያደርገዋል. እነዚህ አማራጮች በርካታ ትርጓሜዎችን ይፈጥራሉ, የመጀመሪያ ትርጉሙም ጥቅም ላይ ይውላል.

- allall-shlib-undefined

- ምንም ያልተገለፀ ባይዋወቀም እንኳ የተጋሩ እቃዎችን ያልተለወጡ ምልክቶችን ይፍቀዱ. የተጣራ ውጤት በመደበኛ እቃዎች ውስጥ ያልተለመዱ ምልክቶች ምልክቶች አሁንም ይቀራሉ, ነገር ግን በተጋሩ እቃዎች ውስጥ ያልተተረጎሙ ምልክቶችን ችላ ይባላሉ. የማይሰነዝረው አሠራር የአጥፊው አገናኝ መያዣ ባልተቋረጡ ምልክቶች ላይ ጫጫታ እንደሚፈጥር ተገምቷል. ነገር ግን በከባቢው ቤተ-መጽሐፍት ውስጥ ያልተለመዱ ምልክቶች በጋራ ቤተ-መጽሐፍት ውስጥ የተለመዱ ሲሆኑ, በከመርነው ጊዜ ላይ የትኛው ስራ በጣም አግባብነት እንዳለው ለመምረጥ ከየትኛውም ስርዓት (ቢኦኤስ) አለ. ኢኢኤ በተቃራኒው አግባብ የሆነውን የ mimemet ተግባር ይመርጣል. ግልጽ ሆኖ ለ HPPA የተጋሩ ቤተ-ፍርዶች ያልተለመዱ ምልክቶች ሊኖራቸው ይችላል.

- no-undefined-version

በተለምዶ አንድ ምልክት ያልተተረጎመ ስሪት ካለው, አገናኙው ይተዋል. ይህ አማራጭ ምልክቶችን ከማይተወለው ስሪት ጋር አይፈቅድም, ይልቁንም አደጋው ሊከሰት ይችላል.

- ምንም-ማስጠንቀቂያ-አለመዛመድ

በመደበኛነት ld ለምንድነው የማይጣጣሙ የግቤት ፋይሎችን በአንድ ላይ ለማገናኘት ሲሞክሩ ስህተት ይሰጥዎታል, ምናልባትም ለተለያዩ የተክሎች ወይም ለተለያዩ የተሻሉ አካላት የተዘጋጁ በመሆናቸው ነው. ይህ አማራጭ ሊያጋጥሙ የሚችሉ ስህተቶችን ዝም ብሎ እንዲናገር ሊፈቅድለት ይችላል. ይህ አማራጭ የአገናኝ መንገዱ አግባብ አለመሆኑን የሚያረጋግጥ አንድ ልዩ እርምጃን ከወሰዱ, በእንክብካቤ ብቻ ነው መዋል ያለባቸው.

- በፍጹም-ሙሉ-መዝገብ

የጠቅላላ-መዝገብ አማራጩን ለሚቀጥሉ የመዝገቡ ፋይሎችን ያጥፉት .

- noinhibit-exec

ተፈጻሚ በሚሆንበት ጊዜ ስራ ላይ የሚውለው የውጤት ፋይል ሁልጊዜ ያቆዩት. በተለምዶ አገናኙ በአገናኝ ሂደቱ ውስጥ ስህተቶች ሲያጋጥመው የውጤት ፋይል አይፈጥርም. ምንም ስህተት ቢፈጠር የውጤት ፋይል ሳይጻፍ ይወጣል.

-dostdlib

በትእዛዝ መስመር ላይ በግልጽ ተለይተው የተገለጹ የፍለጋ ቤተ መዛግብት ብቻ. በአስተያየት ስክሪፕት (የተገለጹት አገናኝ መለያዎች ጨምሮ) ላይ የተገለጹ የቤተ-መጻህፍት ማውጫዎች ችላ ይባላሉ.

- -format output-format

ld ከአንድ በላይ የሆነ ነገርን ለመደገፍ ሊዋቀር ይችላል. የእርስዎ ld በዚህ መልኩ ከተዋቀረ ለንጩ ግብዓት ፋይሉ ሁለትዮሽ ቅርጸትን ለመለየት - --format አማራጭን መጠቀም ይችላሉ. ተለዋጭ የአማራጭ ቅርጸቶችን ለመደገፍ ቢቀር እንኳን በየጊዜ በእያንዳንዱ ማሽን ላይ እንደ ነባሪ የውጤት ቅርፀት ለማዘጋጀት እንደ መለጠፍ ሊተገበር ይገባዋል. የውጤት ቅርፀት በ "BFD" ቤተ መፃህፍት የሚደገፍ ዓይነት የሆነ የፅሁፍ ሕብረቁምፊ ነው. (የ Objdump -i የተባሉትን ሁለት የቦታ ቅርጸቶች መዘርዘር ይችላሉ.) የስክሪፕት ትዕዛዝ «OUTPUT_FORMAT» የውጤት ቅርጸቱን ሊጠቁም ይችላል, ነገር ግን ይህ አማራጭ ይሽረዋል.

-qmagic

ይህ አማራጭ ለሊኑክስ ተኳሃኝነት ይተዋወቃል.

ምን ያክል

ይህ አማራጭ ለ SVR4 ተኳሃኝነት ተትቷል.

--ዘና በል

በ ማሽን ላይ ጥገኛ ተፅእኖዎች. ይህ አማራጭ በጥቂት ዒላማዎች ብቻ ነው የሚደገፈው.

በአንዳንድ የመሣሪያ ስርዓቶች ላይ የ - ፔርሰም አማራጮች አገናኙን በፕሮግራሙ ውስጥ እንደ የመዝናኛ ሁኔታዎችን በመሳሰሉ በፕሮግራሙ ውስጥ መፍትሄ ሲያገኙ ሊከሰቱ የሚችሉትን ዓለም አቀፋዊ ማሻሻያዎች ያከናውናል.

በአንዳንድ የመሳሪያ ስርዓቶች ላይ እነዚህ አገናኝ ጊዜዎች ዓለምአቀፍ ማትጊያዎች ለፈፀመው የተፈቀደው ተምሳሌታዊ ማረም ሊሆኑ ይችላሉ. ይህ በሞተሱኤታ MN10200 ና MN10300 የሂት ማቀነባበሪያዎች ሁኔታም ይታወቃል.

ይህ የማይደገፍባቸው መድረኮች, - ልገም ተቀባይነት አለው, ነገር ግን ችላ ተብሏል.

- ሪህ-ምልክቶች-የፋይል ስም

በፋይል የፋይል ስም የተዘረዘሩትን ሁሉንም ምልክቶች ብቻ ማስወገድ. የፋይል ስም ቀላል ፋይል ነው, በአንድ መስመር አንድ የአርማ ስም. ይህ አማራጭ ጊዜያዊ የጊዜያዊ ሰንጠረዥ ሠንጠረዥ ቀስ በቀስ በተጠራቀመበት ጊዜ (እንደ VxWorks) ባሉ አካባቢዎች ውስጥ ጠቃሚ ነው.

- -content-symbols-file የማይገለጹ ምልክቶችን ወይም ለቦታ እቃዎች አስፈላጊ አርማዎችን አያስወግድም.

በቃላቱ መስመር ላይ አንድ ጊዜ -ሲረም-ምልክቶች-ፋይል ብቻ መጥቀስ ይችላሉ. በ -s እና- S ይሽራል.

-rthath dir

ወደ የሮጠሪው ቤተ-መጽሐፍት ፍለጋ ዱካ ማውጫውን ያክሉ. ይህ ከኤኤፍኤፍ ጋር ከተጋሩ ነገሮች ጋር በማገናኘት ጥቅም ላይ ይውላል. ሁሉም- የቃላት ክርክሮች ተጣምረው በጋራ በሚገኙበት ጊዜ የተጋሩ ነገሮችን ለማጣደቅ ወደ runtime አገናኝ አገናኝ ተላልፈዋል. የ-rth አማራጭ በተጨማሪ በአገናኝ ውስጥ በተካተቱት በተጋሩ ነገሮች ላይ የሚፈለጉ ነገሮችን ለመለየት ጥቅም ላይ ይውላል. የ-the-path-link አማራጭን ይመልከቱ. ኤፍኤፍኤል ሊተገብር በሚችል ጊዜ ጥቅም ላይ ካልዋለ, የአከባቢው ተለዋዋጭ ይዘቶች "LD_RUN_PATH" የሚገለገሉበት ከሆነ ጥቅም ላይ ይውላል.

የ-the-path አማራጭ በ SunOS ላይ ጥቅም ላይ ሊውል ይችላል. በነባሪ, በ SunOS ላይ, አገናኙ ከ all- L አማራጮች ውስጥ የጊዜ አጫዋች ፍለጋ ፍለጋ ይዘጋል. የፊደል መምረጫ አማራጭ ጥቅም ላይ ከዋለ የሮቢው የፍለጋ ዱካ-- the -path አማራጮችን በመጠቀም የላቁ- L አማራጮችን ብቻ በመጠቀም የተሰራ ይሆናል. ይህ በ nFS የተጫነ የፋይል ስርዓቶች ላይ ሊሆኑ የሚችሉ ብዙ -L ን አማራጮችን ይጨምራል ይህም gcc ሲጠቀም ጠቃሚ ሊሆን ይችላል.

ከሌሎች የኤልኤፍ አባሪዎች ጋር ተኳሃኝነት,-- R አማራጭ ከፋይል ስም ይልቅ, የመጠጫ ስም ከሆነ, እንደ--path አማራጭ ይታያል.

-rath-link DIR

ELF ወይም SunOS ሲጠቀሙ አንድ የተጋራ ቤተ ፍርግም ሌላ ሊፈልግ ይችላል. ይሄ የሚከሰተው አንድ "ኤል-የተጋራ" አገናኝ ከግቤት ፋይሎቹ እንደ አንድ የተጋራ ቤተ-መጽሐፍትን ሲያካትት ነው.

አገናኙን ያልተጋራ እና የማይለወጥ አገናኝ ሲያደርግ እንደዚህ ያለ ጥገኝነት ሲያገኝ, የተጠየቀውን የተጋራ ቤተ-መጽሐፍትን በራስ-ሰር ለማግኘት እና በአገናኝ ውስጥ ጭምር ያካትታል, በግልጽ ካልሆነ. በእንደዚህ አይነት ሁኔታ, -rath-link አማራጮችን ለመፈለግ የመጀመሪያዎቹን ማውጫዎች ይለያል . የ ---ፊት-አገናኝ አማራጮች የኮረንደር የተለያዩ ስሞች ዝርዝር በመጥቀስ ወይም በርካታ ጊዜያት በመምረጥ የቅጥያ ስሞችን ቅደም ተከተል ሊገልጹ ይችላሉ.

ይህ ጥንቃቄ በተጋራው ቤተ-መጽሐፍት ውስጥ ተሰውረው ሊሄድ ይችል የነበረውን የመፈለጊያ ዱካውን ስለሚሻር በጥንቃቄ ጥቅም ላይ ሊውል ይገባል. በእንዲህ ያለ ሁኔታ በድንገት ማሄጃ አገናኙ ከሚሰራው ይልቅ ሌላ የፍለጋ መንገድ መጠቀም ይቻላል.

የተያያዙ የተጋሩ ቤተ-ፍርግሞችን ለማግኘት አገናኙን በሚከተሉት የፍለጋ ጎዳናዎች ይጠቀማል.

1.

-ላይ-አገናኝ አማራጮች ውስጥ የተገለጹ ማንኛቸውም ማውጫዎች.

2.

-በይነቶች አማራጮች ውስጥ የተገለጹ ማንኛቸውም ማውጫዎች. በ -... ላይ- እና --ላይ- ልኬት መካከል ያለው ልዩነት በ -በጣ - አማራጮች የተገለጹ ማውጫዎች በተካሉ እና ስራ ላይ በሚውሉበት ጊዜ ተካተዋል,-- ከላይ-አገናኝ አማራጭ በአገናኝ ጊዜ ላይ ብቻ ውጤታማ ነው. ለአካባቢው አገናኙ ብቻ ነው.

3.

በ ELF ስርአት, ባለ-መስመር እና "ሪት-አገናኝ" አማራጮች ስራ ላይ ካልዋሉ, የአካባቢውን ተለዋዋጭ ይዘትን "LD_RUN_PATH" ይፈልጉ. ለአካባቢው አገናኙ ብቻ ነው.

4.

በ SunOS,-- path አማራጭ ጥቅም ላይ ካልዋለ 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 ካለ, በዚያ ፋይል ውስጥ የሚገኙ ማውጫዎችን ያገኛሉ.

የተጠየቀው የተጋራ ቤተ-መጽሐፍት ካልተገኘ, አገናኝው ማስጠንቀቂያ ይሰጠዋል እና በአገናኙ ይቀጥላል.

-የተጋራ

-Bshareable

የተጋራ ቤተ መጽሐፍት ይፍጠሩ. ይሄ በአሁኑ ጊዜ በ ELF, XCOFF እና የሱዶ መድረኮች ላይ ብቻ ነው የሚደገፈው. በ SunOS ላይ አገናኝ ተለዋዋጭ የተጋራ ቤተ-ፍርግም ይከተላል -ይ-አማኑ ጥቅም ላይ ካልዋለ እና በአገናኝ ውስጥ ያልተገለጹ ምልክቶች.

--ሰስት - የተለመደ

ይህ አማራጭ የተለመዱ ምልክቶችን በተገቢው የውጤት ክፍሎች ውስጥ ባስቀመጠላቸው መጠን በመለካት እንዲያድግ ይነግረዋል. በመጀመሪያ ሁሉም አንድ ባይት ምልክቶች ያሉት, ከዚያም ሁለቱም ባይቶች, ከዚያም ሁሉም አራት አቶች እና ከዚያ በኋላ ሁሉም ነገር ይመጣሉ. ይህ በማስተሳሰር ገደቦች ምክንያት በምልክት መካከል ያለውን ክፍተት ለማስቀረት ነው.

--split-by-file [ መጠን ]

-split-by-reloc ጋር ተመሳሳይ ሲሆን መጠን ሲደርስ ለእያንዳንዱ የግቤት ፋይል አዲስ የውጤት ክፍል ይፈጥራል. ነባሪ ከ 1 መጠን ጋር ካልተሰጠ.

--split-by-reloc [ ቆጠራ ]

በፋይሉ ውስጥ ምንም የውጤት ክፍሉ ከቁጥር በላይ አለመዛባትን እንዳይጨምር በምርጫ ፋይል ውስጥ ተጨማሪ ክፍሎችን ለመፍጠር ይሞክራል. ይህ ወደ ሌላ የትክክለኛ ፍሬዎች (ኮምፒውተሮች) ኮርፖሬሽን በኦኤፍኤፍ (COFF) ነገር ቅርጸት ለማውረድ በጣም ትልቅ የሆኑ ተለዋጭ ፋይሎችን ማመንጨት ጠቃሚ ነው. ምክንያቱም COFFcannot በአንድ ክፍል ውስጥ ከ 65535 ሰፋፊ ቦታዎችን ይወክላል. የዘፈቀደ ክፍሎችን የማይደግፉ ከሆኑ የንጹህ የፋይል ቅርጸቶች ጋር መስራት እንደማይችል ልብ ይበሉ. ማገናኛው የግለሰብን የግብአት ክፍሎችን መልሶ ማሰራጨት አይከፈልም, ስለዚህ አንድ የግብአት ክፍል ከቁጥር በላይ ማዛመጃዎችን ካካተተ አንድ ውጫዊ ክፍል ብዙ የቦታ እቃዎችን ያካትታል. ወደ 32768 እሴት ነባሪዎችን አስምር.

- stats

እንደ አገናኝ ጊዜ እና ማህደረ ትውስታ አጠቃቀም, እንደ አገናኙን በተመለከተ ስለ ስታቲስቲክስ ያስቀምጡ እና ያሳዩ.

- የታሪክ-ቅርፀት

ለአንዳንድ ግቦች የ ld ውፅዓት በአንዳንድ መንገዶች ከነባር አገናኝ አገናኝ ውጤት. ይህ የዝውውር ጥያቄ ይልቁንም የተለመደው ቅርፀት ለመጠቀም ld ይጠይቃል.

ለምሳሌ, በ SunOS ላይ, ld በተባበሩት ሰንሰለት ሰንጠረዥ ውስጥ ያሉ የተመሳሰሉ ግቤቶችን ያዋህዳል. ይህ ሙሉ በሙሉ የማረሚያ መረጃን ከ 30 በመቶ በላይ በማድረግ የውጤት ፋይልን መጠን ይቀንሳል. እንደ አለመታደል ሆኖ የ SunOS "dbx" መርሃግብር የተፈጠረውን ፕሮግራም ማንበብ አይችልም ("gdb" ምንም ችግር የለውም). --traditional-format switch የኤንዲን ማባዛትን ለማጣመር ld ን ይጠቀማል.

- ክፍለ- ጀማሪ ክፍልname = አንግ

በምርጫ ፋይል ውስጥ በአካል የተሰጠው አድራሻ ላይ አንድ ክፍልን ፈልግ . በትርጉም ትዕዛዙ ውስጥ ብዙ ክፍሎችን ለማግኘት እንደ አስፈላጊነቱ ብዙ ጊዜ ይህን አማራጭ ሊጠቀሙበት ይችላሉ. የ org ነጠላ ሄክሳዴሲማል ኢንቲጀር መሆን አለበት. ከሌላ አገናኝዎች ጋር ተኳሃኝነት, አብዛኛውን ጊዜ ከሄክሳዴሲማል እሴቶች ጋር የሚዛመዱትን መሪ 0x ሊያስወግዱ ይችላሉ. ማሳሰቢያ: በክፍል ስም , በእኩል ቁጥር (`` = '') እና በኦግራፊ መካከል ምንም ነጭ ቦታ መኖር የለበትም.

-ቲቪስ ኦርጅ

- ቶታል አና ወይም

-Ttext org

ለ --- ግዕዛው እንደ መነሻ አድራሻ አድርገው ይጠቀሙ --- የጽሑፍ ፋይሉን "bss", "data", ወይም "የፅሁፍ" ክፍል. የ org ነጠላ ሄክሳዴሲማል ኢንቲጀር መሆን አለበት. ከሌላ አገናኝዎች ጋር ተኳሃኝነት, አብዛኛውን ጊዜ ከሄክሳዴሲማል እሴቶች ጋር የሚዛመዱትን መሪ 0x ሊያስወግዱ ይችላሉ.

- dll-verbose

--verbose

ld የስሪት ቁጥሩን ያሳዩ እና የሚደገፉ የአገናኝ ማላመጃዎችን ይጻፉ. የትኛው የግቤት ፋይሎችን ሊከፍት እና ሊከፈት እንደማይችል አሳይ. በአያዡው የሚጠቀመውን የአገናኝን ስክሪፕት አሳይ.

--version-script = version-scriptfile

ወደ አገናኙው የስሪት ስክሪፕት ስም ወስን. ይህ በተለምዶ የተለቀቀ ቤተ-ፍርግም ሲፈጠር ለተፈጠረው ቤተ-ታሪክ ስኬታማነት ተጨማሪ መረጃን ለመግለጽ ጥቅም ላይ ይውላል. ይህ አማራጭ የሚጋራው ቤተ-ፍርግምን የሚደግፍ የኤልኤፍኤ መርሃ-ግብሮች ብቻ ነው.

--warn-common

አንድ የተለመደ ምልክት ከሌላ ተምሳሌት ጋር ወይም ከምልክት መግለጫን ጋር ሲደባበር ይጠንቀቁ. የዩኒክስ አገናኞች ይህ ትንሽ የተደባለቀ ልምድን ይፈቅዳሉ, ነገር ግን በአንዳንድ ሌላ ስርዓተ ክወናዎች አገናኞች አያከብርም. ይህ አማራጭ ሁለንተናዊ ምልክቶችን እንዳያዋህዱ ሊከሰቱ የሚችሉ ችግሮችን እንዲፈቱ ያስችልዎታል. እንደ አለመታደል ሆኖ አንዳንድ የ C ቤተ-መጽሐፍት ይሄንን ዘዴ ይጠቀማሉ, ስለዚህ በቤተ-መፃህፍት ውስጥ እና በፕሮግራሞች ውስጥ ስለ ምልክት ስለ አንዳንድ ምልክቶች ማስጠንቀቂያ ሊሰጡ ይችላሉ.

ሦስት ምሳሌዎች አሉ, በምሳሌዎች እዚህ ተጠቅሰዋል-

int i = 1;

በውህደት ፋይሉ ላይ የተጀመረው የውሂብ ክፍሉ ውስጥ የሚገባው ትርጉም.

ከውጭ ጣሪያ

ያልተወሰነ ማጣቀሻ, ቦታን አይመድፍም. ተለዋዋጭ አንድ ትርጓሜ ወይም የተለመደ ተምሳሌት ሊኖርበት ይገባል.

int i;

አንድ የተለመደ ምልክት. ለተለዋዋጭ አንድ (ወይም ከዚያ በላይ) የተለመዱ ምልክቶች ብቻ ካሉ, በውጤቱ ፋይል ጣት የተተገበረው የውሂብ ቦታ ውስጥ ይሄዳል. አገናኙ ለአንዱ ተመሳሳይ ተለዋዋጭ ወደ አንድ ነጠላ ምልክት ጋር ያዋህዳል. የተለያየ መጠኖች ካላቸው, ትልቁውን መጠን ይመርጣል. አንድ አረፍተ ነገር አንድ የተለመደ ተለዋዋጭ ፍቺ ካለው አንድ የተለመደ ምልክትን ወደ መግለጫ ይለውጣል.

-አውርድ-የተለመደው አማራጭ አምስት ዓይነት ማስጠንቀቂያዎችን ሊያወጣ ይችላል. እያንዳንዱ ማስጠንቀቂያ ሁለት መስመሮች ይከተላል-የመጀመሪያው የደረሰን ምልክት ይገልጻል, ሁለተኛው ደግሞ ተመሳሳይ ስም ያለው ተመሳሳይ ምልክት ያሳያል. ከሁለቱ ምልክቶች አንዱ ወይም ሁለቱም የተለመዱ ምልክቶች ይሆናሉ.

1.

ለትክክቱ ትርጉም ቀድሞውኑ አንድ የተለመደ ምልክት ወደ ማጣቀሻነት በማዞር.

(
): ማስጠንቀቂያ (<ክፍል>) የተሻረ ይሆናል: ማስጠንቀቂያ እዚህ የተቀመጠው

2.

ለትርጉሙ ከጊዜ በኋላ የተገላቢጦሽ ውጤት ስለተገኘ የጋራ ምልክትን ወደ ማጣቀሻነት ማዞር. ምልክቶቹ በተለየ ትዕዛዝ ውስጥ ካልሆነ በስተቀር ቀደም ሲል ከነበረው ሁኔታ ጋር ተመሳሳይ ነው.

(
): ማስጠንቀቂያ: <<ምልክት> 'የተለመደ <ፋይል> (<ክፍል>) መሰጠት: ማስጠንቀቂያ; እዚህ የተለመደ ነው

3.

ከቀዳሚው ተመሳሳይ መጠን ጋር የጋራ የሆነ ምልክት አንድ የጋራ ምልክት ማዋሃድ.

(
): ማስጠንቀቂያ: በርካታ የ <<ምልክት> '<ፋይል> (<ክፍል>) ብዙ የተለመደው: ማስጠንቀቂያ: የበፊቱ የተለመደ እዚህ ነው

4.

ቀዳሚ የተለመደው የተለመደው ምልክት አንድ የተለመደ ምልክት ማጣመር.

(
): ማስጠንቀቂያ

5.

ከዚህ ቀደም ያነሰ የጋራ ምልክት ካለው የጋራ ምልክት ጋር ማዋሃድ. ምልክቶቹ በተለየ ትዕዛዝ ውስጥ ካልሆነ በስተቀር ቀደም ሲል ከነበረው ሁኔታ ጋር ተመሳሳይ ነው.

(
): ማስጠንቀቂያ የ <<ክፍል> ዋንኛ መቁጠር: ማስጠንቀቂያ ትንሽ ያነሰ ነው

--warn-constructors

ማንኛውም ዓለም አቀፍ ገምጋሚዎች ጥቅም ላይ የዋለ ከሆነ ያስጠነቅቁ. ይህ ለአንዳንድ የጥቅም ቅርጸቶች ብቻ ይጠቅማል. እንደ COFF ወይም ELF ያሉ ቅርጸቶች, አገናኙን የአለምአቀፍ ገንቢዎች አጠቃቀም መለየት አይችልም.

- beg-multiple-gp

በውጤቱ ፋይል ውስጥ በርካታ የዓለም አቀፋዊ ጠቋሚዎች ዋጋዎች ካሉ አስጠንቅቅ. ይሄ እንደ አልፋ ያሉ አንዳንድ ሂደቶች ብቻ ትርጉም ያለው ነው. በተለይም አንዳንድ አሠራሮች ከፍተኛ ዋጋ የሚሰጡ ቋሚዎችን በልዩ ክፍል አስቀምጠዋል. አንድ ልዩ ምዝገባ (ዓለም አቀፋዊ ጠቋሚ) በዚህ ክፍል መካከለኛ ነጥብ ላይ ስለሚቆጠር ቋሚዎች በመሠረታዊ መዝጋቢ ሁኔታ አንጻራዊ የአድራሻ አሠራር አማካይነት ሊጫኑ ይችላሉ. በመሠረታዊ መደብሮች አንጻራዊ ሁነታ ላይ ያለው ቅጅ ከተስተካከለና በአንጻራዊነት አነስተኛ በመሆኑ (ለምሳሌ, 16 ቢት) የሚወስደው ይህ ቋሚ መዋኛዎች ከፍተኛውን ቁጥር ይገድባል. ስለዚህ, በትልልቅ ፕሮግራሞች, ሊገኙ የሚችሉ ቋሚዎችን ለማስወገድ ብዙ ዓለም አቀፋዊ ጠቋሚ እሴቶችን መጠቀም አስፈላጊ ነው. ይህ አማራጭ በሚፈፀምበት ጊዜ ይህ አማራጭ እንዲወጣ ይደረጋል.

- አንድ ያስጠነቅቁ

በአንድ የተወሰነ ሞዱል ውስጥ ከአንድ ጊዜ በላይ ሳይሆን ለእያንዳንዱ ያልተወሰነ ምልክት ብቻ አስጠንቅቅ.

--warn-section-align

ከማስተሳሰያው የተነሳ የውጥበት ክፍል አድራሻ ከተቀየረ ማስጠንቀቂያ. በአጠቃላይ, አሰላለፍ በክምችት ክፍል ይዘጋጃል. አድራሻው ካልተገለጸ ብቻ ነው ሊለወጥ የሚችለው; ያንን "SECTIONS" ትዕዛዝ ለክፍሉ የመጀመሪያውን አድራሻ የማይገልጽ ከሆነ.

- የሙዚቃ መዝገብ

ከሁሉም-መዝገብ-የመረጃ አማራጮች በኋላ በተሰጠው የትርጉም ክፍል ውስጥ የተጠቀሱት ማጠራቀሻዎች ሁሉ በማህደረ ትውስታው ውስጥ በማህደሩ ውስጥ ያለውን እያንዳንዱን ነገር ያካትቱ. ይሄ አብዛኛውን ጊዜ በመዝገብ ፋይል ወደ የተጋራ ቤተ-መጽሐፍት ለመገልበጥ ጥቅም ላይ ይውላል, እያንዳንዱ ነገር በተገኘው በተጋራ ቤተ-መጽሐፍት ውስጥ እንዲካተት ያስገድዳል. ይህ አማራጭ ከአንድ ጊዜ በላይ ጥቅም ላይ ሊውል ይችላል.

ይህን አማራጭ ከ gcc ሲጠቀሙ ሁለት ማስታወሻዎች: መጀመሪያ, gcc ስለ አማራጭ አማራቱን አያውቅም, ስለዚህ -Wl, -home-archive . ሁለተኛው, በመዝገብዎ ዝርዝር ውስጥ-wl, -no-whole-archive መጠቀምዎን አይርሱ-gcc በመዝገብዎ ላይ የራሳቸውን ዝርዝር ማህደሮች ስለሚያክል እና ይህ ጥቆማ እነዚያን ሰዎች ላይ ተጽዕኖ ሊያሳርፍ ስለማይፈልጉ.

- የማቅረቢያ ምልክት

የጥቅል ተግባር ለተምሳሌትን ይጠቀሙ. ምልክት ያልተደረገበት የማጣቀሻ ማጣቀሻ ወደ "__ wrap_symbol" ይቀየራል. ማንኛውም ያልተተረጎመ ማጣቀሻ ከ "__real_symbol" ወደ ምልክት ለመቅረት ይቀናበራል.

ይህ ለስርዓት ተግባሪ ጥቅልቅ ለማቅረብ ሊያገለግል ይችላል. የማሸጊያ ተግባር "__wrap_symbol" ይባላል. የስርዓት አገልግሎቱን መደወል ከፈለገ "__ real_symbol" ይደውሉ.

እዚህ ላይ ትንሽ የማይታይ ምሳሌ ይኸውና:

void * __wrap_malloc (int c) {printf ("malloc ከ% ld \ n", c) ጋር; ተመለሰ ___ እውነቱን_ማንኛ (c); }

ከ < malloc> ጋር እዛው በዚህ ፋይል ያለ ሌላ ኮድ ከጫኑ "malloc" ላይ የሚደረጉ ሁሉንም ጥሪዎች "__wrap_malloc" ይደውላሉ. ወደ "__real_malloc" በ "__wrap_malloc" ውስጥ ያለው ጥሪ እውነተኛውን "malloc" ተግባር ነው የሚጠራው.

እንዲሁም የ "__real_malloc" ተግባርን ለማቅረብ ሊፈልጉ ይችላሉ, ስለዚህም ያለ " --rrap አማራጭ" የሚሳካላቸው አገናኞች ይሳካሉ. ይህንን ካደረጉ እንደ "__wrap_malloc" በተመሳሳይ ፋይል ውስጥ "__ real_malloc" የሚለውን ትርጉም ማያያዝ አለብዎት. እንደዚያ ከሆነ ተሰብሳቢው ጥሪውን ሊፈታው ይችላል, አገናኝ ሰሪው ወደ "ማጂክ" ለመደመጥ እድል አለው.

- - -ableable-new-dtags

--disable-new-dtags

ይህ አገናኝ በ ELF አዳዲስ ተለዋዋጭ መለያዎችን መፍጠር ይችላል. ነገር ግን ትልቋ ELF ስርዓቶች ላይተረዱ ይችላሉ. --enable-new-dtags ን ካጠኑ , ተለዋዋጭ መለያዎች እንዳስፈላጊነቱ ይፈጠራል. አዲስ-dtags-ካወዱ ምንም አዲስ ተለዋዋጭ መለያዎች አይፈጠሩም . በነባሪነት, አዲስ ተለዋዋጭ መለያዎች አልተፈጠሩም. እነዚህ አማራጮች ለእርዳታ ስርዓቶች ብቻ የሚገኙ መሆናቸውን ልብ ይበሉ.

የ i386 PE አገናኝ አገናኝ ውጫዊውን ይደግፋል, ይህም ውህዱ ከተለመቀ ፍተሻ ይልቅ ፈጣን ዲጂታል (DLL) እንዲሆን ያደርገዋል. ይህን አማራጭ ሲጠቀሙ ውጤቱን "* .dll" መጥራት አለብዎት. በተጨማሪም አገናኙ በአገናኝ ማለቂያ መስመር ላይ እንደ የንብረትን ፋይል (በተለይም ከትርጉም ወደ ውጪ ከሚያስገቡት ማህደሮች) በፊት ሊጠቀስ ከሚችለው ደረጃ "* .def" ፋይሎችን ሙሉ በሙሉ ይደግፋል. ልክ እንደ የተለመደ ነገር ፋይል).

ለሁሉም ኢላማዎች ከሚሰጡ አማራጮች በተጨማሪ, i386 PE መቀያየር ለ i386 PE ዒላማዎች የሚሆኑ ተጨማሪ የትዕዛዝ መስመር አማራጮችን ይደግፋል. እሴቶችን የሚወስዱ አማራጮች በቦታ ወይም በእኩል ምልክት በመጠቀም ከእሴቶቻቸው ሊለያዩ ይችላሉ.

--add-stdcall-alias

ከተሰጠ, ተመጣጣኙ ቅጥያ (@ nn ) ያላቸው ምልክቶች ከትክክለኛው ቅጥያ ተጭነዋል ወደ ውጭ ይላካሉ.

- base-file ፋይል

ፋይሎችን በ dlltool ልውውጥ ለማዘጋጀት የሚያስፈልጉትን ሁሉንም የመኖሪያ አድራሻዎች መሰረታዊ አድራሻዎችን ለማስቀመጥ የፋይል ስም አድርገው ይጠቀሙ.

- dll

ከተለመዱ ኤግዘኪፋይ ይልቅ DLL ይፍጠሩ. በተጨማሪ በተጠቀሰ የ «.def» ፋይል ውስጥ ሊጋራ-ወይም ደግሞ «ቤተ-ፍርግም» ሊጠቀሙ ይችላሉ.

--enable-stdcall-ጥገና

--disable-stdcall-ጥገና

አገናኙ ሊፈታ የማይችል ምልክት ካገኛው, "በስህተት ስም (በ cdecl እና stdcall) ቅርጸት ብቻ የተቀመጠው ሌላ ምልክት" በመፈለግ እና ያንን ምልክት በመጠቆም ችግሩን ይፈታዋል. ወደ ጨዋታ. ለምሳሌ, ያልተገለፀው ምልክት "_foo" ከ "_foo @ 12" ጋር ሊገናኝ ይችላል, ወይም ያልተወሰነው ምልክት "_bar @ 16" ከ "_bar" ጋር ሊገናኝ ይችላል. አጥቂው ይህን ሲያደርግ, ብዙውን ጊዜ ማገናኘት ባይኖርም, ነገር ግን አንዳንዴ ከሶስተኛ ወገን ዲቪስቶች የተገኙ ቤተ-ፍርግሞችን ማስመጣት ይህ ባህሪ ጥቅም ላይ ሊውል ይችላል. --enable-stdcall-ጥገናን ከገለጹ , ይህ ባህሪ ሙሉ በሙሉ ነቅቷል እና ማስጠንቀቂያዎች አይታተሙም. እርስዎ -disable-stdcall-ጥገናን ከለዩ ይህ ባህሪ ተሰናክሏል እና እንደነዚህ ያሉ አለመግባባቶች ስህተቶች እንደሆኑ ይቆጠራሉ.

- export-all-symbols

ከተሰጠ, DLL ን ለመገንባት ጥቅም ላይ የዋሉ ዕቃዎች ውስጥ ያሉ ሁለንተናዊ ምልክቶች በዲኤልኤል ወደ ውጭ ይላካሉ. አለበለዚያም ምንም ወደ ውጪ የተላከ ምንም ምልክት ከሌለ ይህ የተለመደ መሆኑን ልብ ይበሉ. ምልክት በዴኤፍሲዎች በኩል በግልጽ ከተላኩ ወይም በተገቢ ባህሪያት በኩል በውጭ ከተላኩ, ይህ አማራጭ ካልተሰጠ በቀር ነባሪ ምንም ወደ ውጭ መላክ አይችልም. , "DllEntryPoint @ 0", "DllMainCRTStartup @ 12" እና "Impure_ptr" ምልክቶቹ በቀጥታ ወደ ውጪ አይላኩም. በተጨማሪም, ከሌላ የ DLLs የተውጣጡ ምልክቶች ተመለሚ አይደረጉም, እንዲሁም በ «_head_» የሚጀምሩ ወይም «_iname» የሚጀምሩ እንደ የ DLL ውስጣዊ አቀማመጥ ምልክት አይሆንም. በተጨማሪም ከ "libgcc", "libstd ++", "libmingw32" ወይም "crtX.o" ምልክቶች ወደ ውጪ አይላኩም. ስማቸው በ "__rtti_" ወይም "__builtin_" የሚጀምርባቸው ምልክቶች በ C ++ DLLs ላይ እንዲረዱት አይላክም. በመጨረሻም ወደ ውጭ ወደማይላኩ የሳይጅ-ግላዊ ምልክቶችን ዝርዝር ይዘረዝራል (በግልጽ እንደሚታየው ይህ ለ Cygwin ዓላማዎች DLL ህንፃ ሲገነባ ነው).

እነዚህ ሳይጂዊን አይካተቱም-«_cygwin_dll_entry @ 12», «_cygwin_crt0_common @ 8», «_ cygwin_noncygwin_dll_entry @ 12», «_fmode», «_impure_ptr», «cygwin_attach_dll», «cygwin_premain0», «cygwin_premain1», «cygwin_premain2», «cygwin_premain3 ", እና" ስለ "ማለት ነው.

- ጨምር - የዴምጽ ምልክቶች , ምልክት , ...

በራስ-ሰር ወደ ውጪ መላክ የሌለባቸው የፎቶዎች ዝርዝር ይገልጻል. የምልክት ስሞች በኮማ (ኮማ) ወይም ኮረንደር (ኮረንደር) ሊገለሉ ይችላሉ.

- exclude-libs lib , lib , ...

የትኞቹም ምልክቶች በራስ-ሰር ወደ ውጪ መላክ የሌለባቸው የማህደሮች ቤተ መዛግብት ዝርዝር ይገልጻል. የቤተ-መጽሐፍት ስሞች በኮማ (ኮማ) ወይም በግሪንስ (ኮረን) ሊሆን ይችላል. "- exclude-libs ALL" መግለጽ በሁሉም የመዝገቡ ቤተ-ፍርግሞች ውስጥ ካሉ አርማዎች አይፈልጉም. በ .def ፋይል ውስጥ በግልጽ የተዘረዘሩ ምልክቶች አሁንም ቢሆን ወደ ውጪ ይላካሉ, ይህ አማራጭ ምንም ይሁን ምን.

- file-alignment

የፋይል አሰላለፍ ለይ ይጥቀሱ. በፋይሉ ውስጥ ያሉ ክፍፍሎች ሁልጊዜ የዚህ ቁጥር ብዜት በሆኑ የፋይል ቅጣቶች ይጀምራሉ. ይህ ለ 512 ነባሪ ይሆናል.

- የተያዘ ቦታ

- መያዝ , ማሰራጨት

ለዚህ ፕሮግራም እንደ ትናንሽ ለማቆየት ለማከማቸት (እና የግዴታ አተገባበር) ለማከማቸት የማህደረ ትውስታ መጠን ይጥቀሱ. ነባሪው 1 ሜባ ተይዟል, 4 ኪ ተካቷል.

--image-base value

እሴት እንደ ፕሮግራምዎ ወይም dll መሰረታዊ አድራሻ ይጠቀሙ. ይህ መርሐግብር ወይም ድራይብ በሚጫንበት ጊዜ ስራ ላይ የሚውል አነስተኛ ማህደረ ትውስታ ቦታ ነው. የአንተን ዲቪ (አፕሊኬሽኖች) የመልቀቅ እና የማሻሻል ፍላጎት ለመቀነስ, እያንዳንዱ ልዩ የመሠረታዊ አሠሪ አድራሻ ሊኖረው እና የሌሎች ኤፍኤሎች መደራረብ የለበትም. ነባሪው ለኤ ፒክሮሶች 0x400000 እና 0x10000000 ለ dlls ነው.

--kill-at

ከተሰጠው, ዋናዎቹ ቅጥያዎች (@ nn ) ከመላካቸው በፊት ከምልክቶች ይወገዳሉ.

- ትልቅ-ምስል-ስሪት እሴት

የ «የምስል ስሪቱን» ዋናውን ቁጥር ያዘጋጃል. ነባዶች 1.

- ትልቅ-እትም ዋጋ

«` የ «ስፖንትን» ዋናውን ቁጥር ያዘጋጃል. ነባሪዎች ከ 4.

- ትልቅ-ንዑስ-ስርዓት-ስሪት እሴት

የዋና ስርዓት ሥሪት ዋናውን ቁጥር ያዘጋጃል. ነባሪዎች ከ 4.

- Minor-image-version እሴት

የ «የምስል ስሪቱን» ጥቃቅን ቁጥር ያዘጋጃል. ነባሪዎች ከ 0.

--minor-os-version እሴት

«` የ «ስፖን» ን አነስተኛ ቁጥር ያዘጋጃል. ነባሪዎች ከ 0.

- Minor-subsystem-version እሴት

«የነዋዊ ስርዓት ሥሪት» አነስተኛ ቁጥር ያዘጋጃል. ነባሪዎች ከ 0.

--output-def ፋይል

አገናኝ አገናኙ ከሚፈጥረው አገናኝ ዲኤልቲ ጋር የሚገናኝ የ DEF ፋይልን የሚፈጥር የፋይል ፋይል ይፈጥራል. ይህ የ DEF ፋይል («* .def» ተብሎ የሚጠራው) «dlltool» ላይ ያለው የፍለጋ ቤተ-ፍርግም ለመፍጠር ጥቅም ላይ ሊውል ይችላል ወይም ለውጭ ወይም ለውጭ ወደ ውጭ ወደ ውጭ ወደ ውጭ ወደ ውጭ ወደ ተላከ ለውጦች ሊያገለግል ይችላል.

--out-implib ፋይል

አገናኝ አገናኙ ከሚፈጥረው አገናኝ DLL ጋር የሚገናኝ የፋይል ፋይል ይፈጥራል. ይህ የማያስፈልገው ትር "" *. Dll.a "ወይም" * .a "ተብሎ የሚጠራው ከተፈጠረው ዲኤልኤል ጋር ደንበኞችን ለማገናኘት ሊያገለግል ይችላል; ይህ ባህሪ የተለየ" dlltool "ለማስመጣት ቤተ-ፍርግም ፈጠራ ደረጃን መዝለል ያስችላል.

- - አውቶ-ራስ-ምስል-መሰረታዊ

አንድ የ "--image-base" ሙግትን በመጠቀም አንድ እስካልተጠቀለ ድረስ የዲጂታል ምስልን በራስ-ሰር ይመርጣል. ለእያንዳንዱ ዲኤልኤ, ልዩ ትዝታዎችን, ትውስታዎችን በመፍሰሱ እና በፕሮግራም አፈፃፀም መዘግየት የሚዘወተሩ ማረፊያዎችን ለማስቀረት ከዳሌክ ስም የተሰራ ሀሽ በመጠቀም.

--disable-auto-image-base

ልዩ የሆነ ምስል መሰረትን በራስ ሰር አታቅርብ. በተጠቃሚ የተገለፁ ምስሎችን ("-image-base") ከሌለ የመሣሪያ ስርዓቱን ነባሪው ይጠቀሙ.

- dll-search-prefix string

ምንም እንኳን ከውጭ ቤተ-መጽሐፍት ውጭ ወደ DLL ሲነካ, " .dll" ን በመፈለግ .dll> ን በመፈለግ ላይ. ይህ ባህሪ ለተለያዩ የ «ስርዓተ አካላት» የተገነቡ በ DLL ዎች መካከል ቀላል ልዩነት እንዲኖር ያስችላል: ቤተኛውን, ሳይጋዊን, ዩዊን, ፒ.ቪ ወዘተ. ለምሳሌ, cygwin DLLs በአብዛኛው «- dll-search-prefix = cyg» ን ይጠቀማሉ.

- - አውቶ-ራስ-አስመጣ

ከ DLLs ለሚመጡ ውሂቦች ከ "_symbol" ወደ "__imp__" ምልክት የተራቀቀ ማዛመጃ እና "DATAportports" በሚያስገቡበት ጊዜ ከውጭ ማስመጣት ቤተ-መጻህፍት ጋር በሚገነቡበት ወቅት አስፈላጊ አስገቢ ምልክቶችን ይፍጠሩ. ይህ በአጠቃላይ «ብቻ ይሰራል» --- ግን አንዳንዴ ይህንን መልዕክት ሊያዩ ይችላሉ:

"ተለዋዋጭ" 'በራስ-ለማስመጣት አይቻልም.እባክዎ ለዝርዝሮች የዲ.ሲ. «--enable-auto-import» ሰነዶቹን ያንብቡ.

ይህ መልዕክት የተከሰተው አንዳንድ (ንዑስ) አገላለጽ ከሁለት ቋሚዎች ድምር በሰጠው የመጨረሻ አድራሻ (Win32 ማስገባት ሰንጠረዦች ብቻ ሲፈቀድ) ነው. ይህ በሚሆንበት ጊዜ አጋጣሚዎች ከዲኤልኤል ወደተገቡት የ "ፈንክሽን" ተለዋዋጭ መስመሮች እና እንዲሁም ከ DLL ወደ ውስጥ በሚመጣ የተመን እሴት ውስጥ ቋሚ ኢንዴክስን ይጠቀማል. ማንኛውም የመልዕክት ቃል ተለዋዋጭ (ድርድሮች, ረቂቅ, ረጅም ርቀት, ወዘተ) ይህንን የስህተት ሁኔታ ሊያነሳ ይችላል. ሆኖም ግን, የተበየነው ተለዋዋጭ ተለዋዋጭ ትክክለኛ የውሂብ ዓይነት ቢኖረውም, ዱድ ሁልጊዜ ፈልጎውን, ማስጠንቀቂያውን እና መውጣት ያደርገዋል.

ወደ ውጪ የተላከው ተለዋዋጭ የውሂብ አይነት ቢሆንም, ይህንን ችግር ለመፍታት ብዙ መንገዶች አሉ.

አንደኛው መንገድ - - -ableable-runtime-pseudo-reloc መቀየርን መጠቀም ነው. ይህ ለስራ አስኪያጅ / አካባቢያዊ አከባቢ በበይነመረብ ደንበኛዎ ውስጥ ማጣቀሻዎችን ማስተካከል ተግባርን ያስቀጣል, ስለዚህ ይህ ዘዴ የሚሠራው የአሂድ የግንኙነት አከባቢ በዚህ ባህሪ ሲደግፍ ብቻ ነው.

ሁለተኛው መፍትሄ አንድ 'ቋሚዎች' ተለዋዋጭ እንዲሆኑ - በማያውቀው ጊዜ ላይ የማይታወቅ እና የማይመሳሰል ነው. ለአውዶች, ሁለት ምክንያቶች አሉ; ሀ) መረጃ ጠቋሚውን (የተጠሪው አድራሻ) ተለዋዋጭ እንዲሆን ወይም b) 'constant' ኢንዴክስ ተለዋዋጭ እንዲሆን አድርግ. ስለሆነም

ዘይቤው ውጣ ውረድ [extern_array []); extern_array [1] -> {የተጋለጠ ዓይነት * t = external_array; t [1]}

ወይም

ዘይቤው ውጣ ውረድ [extern_array []); extern_array [1] -> {voltile t t = 1; Extern_array [t]}

ለትርጉሞች (እና ለብዙዎቹ የመልዕክት ውሂቦች አይነቶች) ብቸኛው አማራጭ የራሱን መዋቅር (ወይም ረጅም, ወይም ...) ተለዋዋጭ ማድረግ ነው.

ውጫዊ መዋቅሮች s extern_struct; extern_struct.field -> {voltile struct s * t = & extern_struct; t-> መስክ}

ወይም

ውጪያዊ ረዥም ረጅም Extern_ll; extern_ll -> {ተለዋዋጭ ረጅም * local_ll = & extern_ll; * local_ll}

ይህንን ችግር ለመፍታት ሶስተኛ መንገድ ለአመጸኛው ምልክት << ራስ-ማስመጣት >> መተው እና በ «__declspec (dllimport)» ምልክት ያድርጉበት. ሆኖም ግን, DLL ህን እየገነቡ እንደሆነ, ከዲኤልኤልኤል ጋር የሚያገናኝ የደንበኛ ኮድ መገንባት ወይም የቲያትር ቤተ-መጽሐፍትን መገንባት / ማገናኘትን ለማመልከት ማጠናከሪያ ጊዜ # ማጣሪያን የሚጠይቅ መለኪያ ነው. «ቀጥታውን አድራሻን በማያያዝ» ችግሮችን ለመፍታት የተለያዩ መንገዶችን በሚመርጡበት ጊዜ የእውነተኛ ዓለምን አጠቃቀም ያስቡበት.

የመጀመሪያው:

- foo.h ውጫዊ የውስጥ ብልት []; --foo.c # "foo.h" የዋና ዋና (ቀመር arg, char ** argv) {printf ("% d \ n", arr [1]); }

መፍትሔ 1:

- foo.h ውጫዊ የውስጥ ብልት []; --foo.c # "foo.h" void main (int argc, char ** argv) {/ * ይህ ተለዋዋጭ ስራ ለ win32 እና cygwin ነው; "optimize" * / volatile int * parr = arr; printf ("% d \ n", parr [1]); }

መፍትሔ 2

--foo.h / * ማስታወሻ: ራስ-ወደ-ውጭ መላክ (__DEclppec (dllexport)) * / #if (የተብራራ (_WIN32) || የተገለጸ (__ CYGWIN__)) & & \! (የተተረጎመው (FOO_BUILD_DLL) || የተገለጹ (FOO_STATIC )) # define FOO_IMPORT __declspec (dllimport) #ኤልፍ #define FOO_IMPORT #endif ውጫዊ FOO_IMPORT int arr []; --foo.c # "foo.h" የዋና ዋና (ቀመር arg, char ** argv) {printf ("% d \ n", arr [1]); }

ከዚህ ችግር ለመራቅ በአራተኛው መንገድ ለተሰናከሉ ተለዋዋጮች (ለምሳሌ set_foo () እና get_foo () የአቅጣጫ ተግባሮች (ለምሳሌ, set_foo () እና get_foo () ).

--disable-auto-import

ከ DLLs ለ DATAimports ከ "_symbol" ወደ "__imp__ symbol" ለማገናኘት አይሞክሩ.

--enable-runtime-pseudo-reloc

የእርስዎ ኮድ በ «--able-auto-import» ክፍል ውስጥ ማለትም በ DLL እና በዲኤልኤል ውስጥ ካለው ዲታሊክስ ጋር በተገለጹት ውስጥ የተገለጹ መግለጫዎችን ይዟል, ይህ መቀየሪያ ማጣቀሻዎች ለማስተካከል በሂደት ጊዜ መስጫ ጥቅም ላይ ሊውሉ የሚችሉ የ «የጊዜ ርዝመቶች» የተሰየመ ድሮፕሊንዶችን ይፈጥራል. በበካይዎ ኮድ ውስጥ እንደዚህ ያለ ውሂብ.

--disable-runtime-pseudo-reloc

ከ DLL ዎች ጋር ወደ ዜሮ ያልሆነ ቅናሽ የውሂብ ጎታ የውሸት ማስመጣቶችን አይጠቀሙ. ይሄ ነባሪ ነው.

- enable-extra-pe-debug

ከይራ-አስመጪው ምልክት ጫት ጋር የሚዛመድ ተጨማሪ የስህተት ማረም መረጃ አሳይ.

- ሴክሽን-አቀላለፍ

የክፍል አሰላለፍ ያዘጋጃል. በማህደረ ትውስታ ውስጥ ያሉት ክፍሎቹ ሁልጊዜ በዚህ ቁጥር ብዙ ቁጥር በሆኑ አድራሻዎች ይጀምራሉ. ነባሪዎች ከ 0x1000.

--stack reserve

--stack መጠባበቂያ , መፈጸም

ለዚህ ፕሮግራም እንደ ማቆሚያ ጥቅም ላይ የሚውል የማከማቻ ማህደረ ትውስታ መጠን (እና የግዴታ ተፈጻሚነት) ይጥቀሱ. ነባሪው 2 ሜባ ተይዟል, 4 ኪ ተካቷል.

--subsystem that

- - ዋና

- - ዋና . አነስተኛ

ፕሮግራምዎ የሚከፈልበት ስርዓት ስርዓት ይገልጻል. «ተወላጅ», «መስኮቶች», «መቆጣጠሪያ» እና «ፖዚሲ» የሚሉባቸው ህጋዊ እሴቶች. ምናልባት የስርዓቱን የስርዓት ሥሪትም እንዲሁ ሊያዘጋጁ ይችላሉ.

ጠቃሚ ማሳሰቢያ: በኮምፒተርዎ ውስጥ እንዴት አንድ ትዕዛዝ እንዴት ጥቅም ላይ እንደዋለ ለመመልከት የሰውውን ትዕዛዝ ( % man ) ይጠቀሙ.