ਲੀਨਕਸ / ਯੂਨੀਕਸ ਕਮਾਂਡ: Id

NAME

ld - LD , GNU ਲਿੰਕਰ ਵਰਤਣਾ

ਸੰਕਲਪ

ld [ ਵਿਕਲਪ ] objfile ...

DESCRIPTION

ld ਕਈ ਵਸਤੂਆਂ ਅਤੇ ਅਕਾਇਵ ਫਾਈਲਾਂ ਨੂੰ ਜੋੜਦਾ ਹੈ, ਉਨ੍ਹਾਂ ਦੇ ਡੇਟਾ ਨੂੰ ਬਦਲਦਾ ਹੈ ਅਤੇ ਚਿੰਨ੍ਹ ਹਵਾਲਿਆਂ ਨੂੰ ਜੋੜਦਾ ਹੈ. ਆਮ ਤੌਰ 'ਤੇ ਇੱਕ ਪ੍ਰੋਗਰਾਮ ਨੂੰ ਕੰਪਾਇਲ ਕਰਨ ਵਿੱਚ ਆਖਰੀ ਕਦਮ ਹੈ ld ਨੂੰ ਚਲਾਉਣਾ.

ld ਲਿੰਕਿੰਗ ਕਮਾਂਡ ਉੱਤੇ ਸਪੱਸ਼ਟ ਅਤੇ ਕੁੱਲ ਨਿਯੰਤਰਣ ਪ੍ਰਦਾਨ ਕਰਨ ਲਈ AT & T ਦੇ ਲਿੰਕ ਸੰਪਾਦਕ ਕਮਾਂਡ ਭਾਸ਼ਾ ਸੰਟੈਕਸ ਦੇ ਇੱਕ ਸਮੂਹ ਵਿੱਚ ਲਿਖੇ ਲਿੰਕਰ ਕਮਾਂਡ ਭਾਸ਼ਾ ਫਾਈਲਾਂ ਨੂੰ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ.

ਇਹ ਮੈਨ ਪੇਜ ਕਮਾਂਡ ਭਾਸ਼ਾ ਦਾ ਵਰਣਨ ਨਹੀਂ ਕਰਦਾ; "ਭਾਸ਼ਾ" ਵਿੱਚ ld ਐਂਟਰੀ ਵੇਖੋ, ਜਾਂ ਮੈਨੂਅਲ ld: ਜੀਐਨਯੂ ਲਿੰਕਰ, ਕਮਾਂਡ ਭਾਸ਼ਾ ਅਤੇ ਸਮੁੰਦਰੀ ਜਹਾਜ਼ ਦੇ ਲਿੰਕਰ ਦੇ ਹੋਰ ਪਹਿਲੂਆਂ ਤੇ ਪੂਰੇ ਵੇਰਵਿਆਂ ਲਈ.

Ld ਦਾ ਇਹ ਸੰਸਕਰਣ ਔਸਤ ਫਾਈਲਾਂ ਤੇ ਓਪਰੇਟਿੰਗ ਕਰਨ ਲਈ ਆਮ ਮੰਤਵ BFD ਲਾਇਬ੍ਰੇਰੀਆਂ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ. ਇਹ ld ਨੂੰ ਕਈ ਵੱਖ ਵੱਖ ਫਾਰਮੈਟਾਂ ਵਿਚ ਆਬਜੈਕਟ ਫਾਇਲਾਂ ਨੂੰ ਪੜ੍ਹਨ, ਜੋੜਨ ਅਤੇ ਲਿਖਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ- ਉਦਾਹਰਨ ਲਈ, COFF ਜਾਂ "a.out". ਕਿਸੇ ਵੀ ਉਪਲੱਬਧ ਕਿਸਮ ਦੀ ਇਕਾਈ ਫਾਈਲ ਨੂੰ ਬਣਾਉਣ ਲਈ ਵੱਖ-ਵੱਖ ਫਾਰਮੈਟਾਂ ਨੂੰ ਜੋੜਿਆ ਜਾ ਸਕਦਾ ਹੈ.

ਇਸ ਦੇ ਲਚਕਤਾ ਤੋਂ ਇਲਾਵਾ, ਡਾਈਨੋਨੋਸਟਿਕ ਜਾਣਕਾਰੀ ਪ੍ਰਦਾਨ ਕਰਨ ਲਈ ਜੀਐਨਯੂ ਲਿੰਕਰ ਦੂਜੇ ਲਿੰਕਾਂ ਨਾਲੋਂ ਵਧੇਰੇ ਸਹਾਇਕ ਹੈ. ਬਹੁਤ ਸਾਰੇ ਲਿੰਕਕਰਤਾ ਇੱਕ ਅਸ਼ੁੱਧੀ ਦਾ ਸਾਹਮਣਾ ਕਰਨ ਦੇ ਬਾਅਦ ਤੁਰੰਤ ਚੱਲਣ ਨੂੰ ਛੱਡ ਦਿੰਦੇ ਹਨ; ਜਦੋਂ ਵੀ ਸੰਭਵ ਹੋਵੇ, ld ਜਾਰੀ ਰਹਿ ਰਿਹਾ ਹੈ, ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਦੂਜੀਆਂ ਗਲਤੀਆਂ (ਜਾਂ ਗਲਤੀ ਦੇ ਬਾਵਜੂਦ ਆਉਟਪੁੱਟ ਫਾਇਲ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ) ਦੀ ਪਛਾਣ ਕਰ ਸਕਦੇ ਹੋ.

ਜੀ ਐਨ ਯੂ ਲਿੰਕਰ ld ਦਾ ਭਾਵ ਵਿਆਪਕ ਲੜੀ ਦੀਆਂ ਸਥਿਤੀਆਂ ਨੂੰ ਕਵਰ ਕਰਨਾ ਹੈ, ਅਤੇ ਹੋਰ ਲਿੰਕ ਕਰਨ ਵਾਲਿਆਂ ਨਾਲ ਜਿੰਨਾ ਹੋ ਸਕੇ ਅਨੁਕੂਲ ਹੋਣਾ ਹੈ. ਨਤੀਜੇ ਵਜੋਂ, ਇਸਦੇ ਵਿਵਹਾਰ ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਨ ਲਈ ਤੁਹਾਡੇ ਕੋਲ ਬਹੁਤ ਸਾਰੀਆਂ ਚੋਣਾਂ ਹਨ

ਵਿਕਲਪ

ਲਿੰਕਰ ਬਹੁਤ ਸਾਰੀਆਂ ਕਮਾਂਡ-ਲਾਈਨ ਚੋਣਾਂ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ, ਪਰ ਅਸਲ ਅਭਿਆਸ ਵਿੱਚ ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੁਝ ਨੂੰ ਕਿਸੇ ਖਾਸ ਸੰਦਰਭ ਵਿੱਚ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ. ਉਦਾਹਰਣ ਵਜੋਂ, ld ਦਾ ਅਕਸਰ ਵਰਤਿਆ ਮਿਆਰੀ ਯੂਨੀਕਸ ਆਬਜੈਕਟ ਫਾਇਲਾਂ ਨੂੰ ਇੱਕ ਮਿਆਰੀ, ਸਮਰਥਿਤ ਯੂਨਿਕਸ ਸਿਸਟਮ ਤੇ ਲਿੰਕ ਕਰਨ ਲਈ ਹੈ . ਅਜਿਹੇ ਸਿਸਟਮ ਤੇ, "hello.o" ਫਾਇਲ ਨੂੰ ਲਿੰਕ ਕਰਨ ਲਈ:

ld -o <ਆਉਟਪੁੱਟ> /lib/crt0.o ਹੈਲੋ.ਓ- lc

ਇਹ ld ਨੂੰ "hello.o" ਅਤੇ "libc.a" ਲਾਇਬਰੇਰੀ ਦੇ ਨਾਲ "/lib/crt0.o" ਫਾਇਲ ਨੂੰ ਜੋੜਨ ਦੇ ਨਤੀਜੇ ਵਜੋਂ ਆਉਟਪੁੱਟ ਕਹਿੰਦੇ ਹਨ, ਜੋ ਕਿ ਮਿਆਰੀ ਖੋਜ ਡਾਇਰੈਕਟਰੀ ਤੋਂ ਆਵੇਗੀ. (ਹੇਠਾਂ -l ਚੋਣ ਦੀ ਚਰਚਾ ਵੇਖੋ.)

ਕਮਾਂਡ ਲਾਈਨ ਦੀਆਂ ਕੁਝ ਕਮਾਂਡਾਂ ld ਨੂੰ ਕਮਾਂਡ ਲਾਈਨ ਵਿਚ ਕਿਸੇ ਵੀ ਪੁਆਂਇਟ ਤੇ ਨਿਰਦਿਸ਼ਟ ਕੀਤੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ. ਹਾਲਾਂਕਿ ਵਿਕਲਪ, ਜੋ ਕਿ ਫਾਈਲ ਨੂੰ ਦਰਸਾਉਂਦੇ ਹਨ, ਜਿਵੇਂ- l ਜਾਂ -T , ਫਾਈਲ ਨੂੰ ਉਸ ਥਾਂ ਤੇ ਪੜ੍ਹਨ ਲਈ ਉਤਸਾਹਿਤ ਕਰਦੇ ਹਨ ਜਿਸਤੇ ਆਦੇਸ਼ ਫਾਈਲਾਂ ਅਤੇ ਹੋਰ ਫਾਈਲ ਵਿਕਲਪਾਂ ਦੇ ਅਨੁਸਾਰੀ ਕਮਾਂਡ ਲਾਈਨ ਵਿੱਚ ਆਉਂਦੀ ਹੈ. ਵੱਖਰੇ ਆਰਗੂਮੈਂਟ ਨਾਲ ਗੈਰ-ਫਾਈਲ ਵਿਕਲਪਾਂ ਨੂੰ ਦੁਹਰਾਉਂਦਿਆਂ ਜਾਂ ਤਾਂ ਇਸ ਦਾ ਕੋਈ ਹੋਰ ਪ੍ਰਭਾਵ ਨਹੀਂ ਹੋਵੇਗਾ, ਜਾਂ ਉਸ ਚੋਣ ਦੇ ਪੁਰਾਣੇ ਮੌਜੂਦਗੀਆਂ (ਜੋ ਕਿ ਕਮਾਂਡ ਲਾਈਨ ਤੇ ਖੱਬੇ ਤੋਂ ਇਲਾਵਾ) ਨੂੰ ਓਵਰਰਾਈਡ ਕਰਦਾ ਹੈ. ਇਕ ਵਾਰ ਤੋਂ ਜ਼ਿਆਦਾ ਅਰਥਪੂਰਨ ਨਿਸ਼ਚਿਤ ਕੀਤੇ ਗਏ ਵਿਕਲਪਾਂ ਨੂੰ ਹੇਠਾਂ ਦਿੱਤੇ ਵਰਣਨ ਵਿੱਚ ਨੋਟ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ.

ਗੈਰ-ਚੋਣ ਆਰਗੂਮੈਂਟ ਅਲਾਬਫਟ ਫਾਈਲਾਂ ਜਾਂ ਆਰਕਾਈਵਜ਼ ਹਨ ਜੋ ਇੱਕਠਿਆਂ ਨੂੰ ਜੋੜਦੇ ਹਨ. ਉਹ ਕਮਾਂਡ-ਲਾਈਨ ਦੇ ਵਿਕਲਪਾਂ ਦੇ ਨਾਲ ਪਾਲਣਾ ਕਰ ਸਕਦੇ ਹਨ, ਅੱਗੇ ਤੋਂ ਜਾਂ ਮਿਲਾ ਸਕਦੇ ਹਨ, ਇਸਦੇ ਇਲਾਵਾ ਕਿਸੇ ਆਬਜੈਕਟ ਫਾਇਲ ਆਰਗੂਮੈਂਟ ਨੂੰ ਕਿਸੇ ਵਿਕਲਪ ਅਤੇ ਇਸਦੇ ਆਰਗੂਲੇਸ਼ਨ ਦੇ ਵਿਚਕਾਰ ਨਹੀਂ ਰੱਖਿਆ ਜਾ ਸਕਦਾ.

ਆਮ ਤੌਰ 'ਤੇ ਲਿੰਕਰ ਨੂੰ ਘੱਟੋ ਘੱਟ ਇਕ ਆਬਜੈਕਟ ਫਾਇਲ ਨਾਲ ਜੋੜਿਆ ਜਾਂਦਾ ਹੈ, ਪਰ ਤੁਸੀਂ -ਲ , -ਰ , ਅਤੇ ਸਕ੍ਰਿਪਟ ਕਮਾਂਡ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਬਾਈਨਰੀ ਇੰਪੁੱਟ ਫਾਇਲਾਂ ਦੇ ਹੋਰ ਫਾਰਮਾਂ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰ ਸਕਦੇ ਹੋ. ਜੇ ਕੋਈ ਬਾਇਨਰੀ ਇਨਪੁਟ ਫਾਈਲਾਂ ਨਹੀਂ ਦਿੱਤੀਆਂ ਗਈਆਂ ਹਨ, ਤਾਂ ਲਿੰਕਰ ਕਿਸੇ ਆਊਟਪੁਟ ਦਾ ਉਤਪਾਦਨ ਨਹੀਂ ਕਰਦਾ ਹੈ ਅਤੇ ਸੁਨੇਹਾ ਨਹੀਂ ਦਿੰਦਾ ਹੈ ਕੋਈ ਇਨਪੁਟ ਫਾਈਲਾਂ ਨਹੀਂ .

ਜੇਕਰ ਲਿੰਕਰ ਕਿਸੇ ਆਬਜੈਕਟ ਫਾਇਲ ਦੇ ਫਾਰਮੇਟ ਨੂੰ ਨਹੀਂ ਪਛਾਣ ਸਕਦਾ, ਤਾਂ ਇਹ ਮੰਨ ਲਵੇਗਾ ਕਿ ਇਹ ਇੱਕ ਲਿੰਕਰ ਸਕ੍ਰਿਪਟ ਹੈ. ਇਸ ਢੰਗ ਵਿੱਚ ਸਪਸ਼ਟ ਇੱਕ ਸਕ੍ਰਿਪਟ ਲਿੰਕ ਲਈ ਵਰਤਿਆ ਜਾਣ ਵਾਲਾ ਮੁੱਖ ਲਿੰਕਰ ਸਕ੍ਰਿਪਟ (ਜਾਂ ਤਾਂ ਮੂਲ ਲਿੰਕਰ ਸਕ੍ਰਿਪਟ ਜਾਂ T ਦੀ ਵਰਤੋਂ ਦੁਆਰਾ ਦਰਸਾਏ ਇੱਕ) ਨੂੰ ਵਧਾਉਂਦਾ ਹੈ. ਇਹ ਫੀਚਰ ਲਿੰਕਰ ਨੂੰ ਇੱਕ ਫਾਇਲ ਦੇ ਸੰਬੰਧ ਵਿੱਚ ਜੋੜਨ ਦੀ ਇਜ਼ਾਜਤ ਦਿੰਦਾ ਹੈ ਜੋ ਇੱਕ ਆਬਜੈਕਟ ਜਾਂ ਪੁਰਾਲੇਖ ਜਾਪਦਾ ਹੈ, ਪਰ ਅਸਲ ਵਿੱਚ ਸਿਰਫ਼ ਕੁਝ ਚਿੰਨ੍ਹ ਮੁੱਲਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ ਜਾਂ ਹੋਰ ਚੀਜ਼ਾਂ ਨੂੰ ਲੋਡ ਕਰਨ ਲਈ "INPUT" ਜਾਂ "GROUP" ਵਰਤਦਾ ਹੈ. ਨੋਟ ਕਰੋ ਕਿ ਇਸ ਤਰੀਕੇ ਨਾਲ ਇੱਕ ਸਕਰਿਪਟ ਦਰਸਾਉਂਦੇ ਹੋਏ ਮੁੱਖ ਲਿੰਕਰ ਸਕ੍ਰਿਪਟ ਨੂੰ ਵਧਾਉਦਾ ਹੈ; ਮੂਲ linker ਸਕ੍ਰਿਪਟ ਨੂੰ ਪੂਰੀ ਤਰਾਂ ਬਦਲਣ ਲਈ -T ਚੋਣ ਦੀ ਵਰਤੋਂ ਕਰੋ.

ਉਹਨਾਂ ਵਿਕਲਪਾਂ ਲਈ ਜਿਨ੍ਹਾਂ ਦੇ ਨਾਂ ਇੱਕ ਹੀ ਅੱਖਰ ਹਨ, ਵਿਕਲਪ ਆਰਗੂਮੈਂਟ ਜਾਂ ਤਾਂ ਖਾਲੀ ਥਾਂ ਦੀ ਦਖਲ ਤੋਂ ਬਿਨਾਂ ਵਿਕਲਪ ਪੱਤਰ ਦਾ ਪਾਲਣ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਜਾਂ ਉਹਨਾਂ ਨੂੰ ਲੋੜੀਂਦੇ ਵਿਕਲਪ ਦੇ ਤੁਰੰਤ ਬਾਅਦ ਵੱਖਰੇ ਆਰਗੂਮੈਂਟਾਂ ਦੇ ਤੌਰ ਤੇ ਦਿੱਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ.

ਉਹਨਾਂ ਵਿਕਲਪਾਂ ਲਈ ਜਿਨ੍ਹਾਂ ਦੇ ਨਾਂ ਮਲਟੀਪਲ ਅੱਖਰ ਹਨ, ਜਾਂ ਤਾਂ ਇੱਕ ਡੈਸ਼ ਜਾਂ ਦੋ ਵਿਕਲਪ ਨਾਮ ਤੋਂ ਪਹਿਲਾਂ ਜਾ ਸਕਦੇ ਹਨ; ਉਦਾਹਰਨ ਲਈ, -ਟਰੇਸ-ਸਿੰਬਲ ਅਤੇ --trace-symbol ਬਰਾਬਰ ਹਨ. ਨੋਟ - ਇਸ ਨਿਯਮ ਵਿਚ ਇਕ ਅਪਵਾਦ ਹੈ. ਬਹੁਤ ਸਾਰੇ ਅੱਖਰ ਵਿਕਲਪ ਜੋ ਇਕ ਛੋਟੇ ਜਿਹੇ ਕੇਸ 'ਓ' ਨਾਲ ਸ਼ੁਰੂ ਹੁੰਦੇ ਹਨ, ਕੇਵਲ ਦੋ ਡैश ਦੁਆਰਾ ਅੱਗੇ ਲੰਘ ਸਕਦੇ ਹਨ. ਇਹ -o ਚੋਣ ਨਾਲ ਉਲਝਣਾਂ ਨੂੰ ਘੱਟ ਕਰਨਾ ਹੈ ਇਸ ਲਈ ਉਦਾਹਰਨ ਲਈ - ਮੈਗਿਕ ਆਉਟਪੁਟ ਫਾਈਲ ਨਾਂ ਨੂੰ ਜਾਦੂ ਵਿੱਚ ਸੈੱਟ ਕਰਦੀ ਹੈ ਜਦੋਂ ਕਿ - ਮੈਮਾਜਕ ਆਉਟਪੁੱਟ ਤੇ ਐਨਮੈਗਿਕ ਫਲੈਗ ਸੈੱਟ ਕਰਦਾ ਹੈ.

ਮਲਟੀਪਲ-ਅੱਖਰ ਚੋਣਾਂ ਲਈ ਆਰਗੂਮੈਂਟਾਂ ਨੂੰ ਕਿਸੇ ਵੀ ਬਰਾਬਰ ਦੇ ਚਿੰਨ੍ਹ ਦੁਆਰਾ ਚੋਣ ਨਾਮ ਤੋਂ ਵੱਖ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ, ਜਾਂ ਉਹਨਾਂ ਨੂੰ ਲੋੜੀਂਦੀ ਚੋਣ ਤੋਂ ਤੁਰੰਤ ਬਾਅਦ ਵੱਖਰੇ ਆਰਗੂਮੈਂਟਾਂ ਦੇ ਤੌਰ ਤੇ ਦਿੱਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ. ਉਦਾਹਰਨ ਲਈ, --trace-symbol foo ਅਤੇ --trace-symbol = foo ਬਰਾਬਰ ਹੁੰਦੇ ਹਨ. ਬਹੁ-ਅੱਖਰ ਵਿਕਲਪਾਂ ਦੇ ਨਾਂ ਦੀ ਵਿਲੱਖਣ ਸ਼ਬਦਾਵਲੀ ਸਵੀਕਾਰ ਕੀਤੀ ਜਾਂਦੀ ਹੈ.

ਨੋਟ - ਜੇ ਲਿੰਕਰ ਨੂੰ ਅਸਿੱਧੇ ਤੌਰ ਤੇ ਜੋੜਿਆ ਜਾ ਰਿਹਾ ਹੈ, ਤਾਂ ਇੱਕ ਕੰਪਾਈਲਰ ਡਰਾਇਵਰ (ਜਿਵੇਂ ਕਿ gcc ) ਰਾਹੀਂ, ਸਾਰੇ ਲਿੰਕਰ ਕਮਾਂਡ ਲਾਈਨ ਚੋਣਾਂ ਨੂੰ- WL, (ਜਾਂ ਖਾਸ ਕੰਪਾਈਲਰ ਡਰਾਈਵਰ ਲਈ ਜੋ ਵੀ ਜਾਇਜ਼ ਹੈ) ਇਸ ਤਰਾਂ ਹੋਵੇਗਾ:

gcc -Wl, - startgroup foo.o bar.o -Wl, - ਅੰਤਗਰੁੱਪ

ਇਹ ਮਹੱਤਵਪੂਰਣ ਹੈ, ਕਿਉਕਿ ਕੰਪਾਈਲਰ ਡਰਾਈਵਰ ਪ੍ਰੋਗ੍ਰਾਮ ਚੁੱਪਚਾਪ ਲਿੰਕਰ ਵਿਕਲਪਾਂ ਨੂੰ ਛੱਡ ਸਕਦਾ ਹੈ, ਜਿਸ ਦੇ ਨਤੀਜੇ ਵਜੋਂ ਇੱਕ ਬੁਰਾ ਸੰਬੰਧ ਹੁੰਦਾ ਹੈ.

ਇੱਥੇ ਜੀ ਐਨ ਯੂ ਲਿੰਕਰ ਦੁਆਰਾ ਸਵੀਕਾਰ ਕੀਤੇ ਆਮ ਕਮਾਂਡ ਲਾਈਨ ਸਵਿੱਚਾਂ ਦਾ ਸਾਰ ਹੈ:

-ਕੀ ਇੱਕ ਕੀਵਰਡ

ਇਹ ਚੋਣ HP / UX ਅਨੁਕੂਲਤਾ ਲਈ ਸਮਰਥਿਤ ਹੈ. ਕੀਵਰਡ ਦਲੀਲ ਇੱਕ ਸਤਰ ਪੁਰਾਲੇਖ , ਸ਼ੇਅਰ ਕੀਤੀ ਜਾਂ ਡਿਫੌਲਟ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ. -Aarchive ਵਿਵਹਾਰਕ ਤੌਰ 'ਤੇ -Bastatic ਦੇ ਬਰਾਬਰ ਹੈ, ਅਤੇ ਦੂਜੇ ਦੋ ਸ਼ਬਦ ਕਾਰਜਸ਼ੀਲ ਤੌਰ ਤੇ -BDynamic ਦੇ ਬਰਾਬਰ ਹਨ. ਇਹ ਵਿਕਲਪ ਕਿਸੇ ਵੀ ਸਮੇਂ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ

- ਇੱਕ ਆਰਕੀਟੈਕਚਰ

--architecture = ਆਰਕੀਟੈਕਚਰ

Ld ਦੇ ਮੌਜੂਦਾ ਰੀਲੀਜ਼ ਵਿੱਚ, ਇਹ ਚੋਣ ਸਿਰਫ ਇੰਟੈਲ 960 ਦੇ ਢਾਂਚੇ ਦੇ 960 ਪਰਿਵਾਰ ਲਈ ਫਾਇਦੇਮੰਦ ਹੈ. ਉਸ ld ਸੰਰਚਨਾ ਵਿੱਚ, ਆਰਕੀਟੈਕਚਰ ਆਰਗੂਮੈਂਟ 960 ਪਰਿਵਾਰ ਵਿੱਚ ਖਾਸ ਢਾਂਚਾ ਦੀ ਪਛਾਣ ਕਰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਕੁਝ ਸੁਰੱਖਿਆਗਾਹਾਂ ਅਤੇ ਆਰਕਾਈਵ-ਲਾਇਬ੍ਰੇਰੀ ਖੋਜ ਮਾਰਗ ਨੂੰ ਸੋਧਿਆ ਜਾ ਸਕਦਾ ਹੈ.

ਹੋਰ ਆਰਕੀਟੈਕਚਰ ਪਰਿਵਾਰਾਂ ਲਈ ld ਦੇ ਭਵਿੱਖ ਦੀਆਂ ਰਿਲੀਜ਼ਾਂ ਮਿਲਦੀਆਂ ਹਨ.

-b ਇੰਨਪੁੱਟ-ਫਾਰਮੈਟ

--format = input-format

ld ਨੂੰ ਇਕ ਤੋਂ ਵੱਧ ਕਿਸਮ ਦੇ ਇਕਾਈ ਫਾਈਲ ਦਾ ਸਮਰਥਨ ਕਰਨ ਲਈ ਸੰਰਚਿਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ. ਜੇ ਤੁਹਾਡਾ ld ਇਸ ਤਰਾਂ ਸੰਰਚਿਤ ਕੀਤਾ ਗਿਆ ਹੈ, ਤਾਂ ਤੁਸੀਂ -b ਚੋਣ ਨੂੰ ਇਨਪੁੱਟ ਇਕਾਈ ਫਾਈਲਾਂ ਲਈ ਬਾਈਨਰੀ ਫਾਰਮੈਟ ਦੇਣ ਲਈ ਵਰਤ ਸਕਦੇ ਹੋ ਜੋ ਕਿ ਕਮਾਂਡ ਲਾਈਨ ਤੇ ਇਸ ਵਿਕਲਪ ਦਾ ਪਾਲਣ ਕਰਦੇ ਹਨ. ਜਦੋਂ ਵੀ ld ਬਦਲਵਾਂ ਆਬਜੈਕਟ ਫਾਰਮੈਟਾਂ ਨੂੰ ਸਹਿਯੋਗ ਦੇਣ ਲਈ ਸੰਰਚਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਤੁਹਾਨੂੰ ਆਮ ਕਰਕੇ ਇਸ ਨੂੰ ਦਰਸਾਉਣ ਦੀ ਲੋੜ ਨਹੀਂ ਹੁੰਦੀ, ਕਿਉਂਕਿ LD ਨੂੰ ਮੂਲ ਇੰਪੁੱਟ ਫਾਰਮੈਟ ਵਾਂਗ ਹਰੇਕ ਮਸ਼ੀਨ ਤੇ ਆਮ ਫਾਰਮੈਟ ਦੀ ਆਸ ਕਰਨ ਲਈ ਸੰਰਚਿਤ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ. ਇੰਪੁੱਟ-ਫਾਰਮੈਟ ਇੱਕ ਪਾਠ ਸਤਰ ਹੈ, BFD ਲਾਇਬਰੇਰੀਆਂ ਦੁਆਰਾ ਸਮਰਥਿਤ ਵਿਸ਼ੇਸ਼ ਫਾਰਮੈਟ ਦਾ ਨਾਂ. (ਤੁਸੀਂ objdump -i ਨਾਲ ਉਪਲਬਧ ਬਾਇਨਰੀ ਫਾਰਮੈਟਾਂ ਦੀ ਸੂਚੀ ਦੇ ਸਕਦੇ ਹੋ.)

ਤੁਸੀਂ ਇਸ ਵਿਕਲਪ ਨੂੰ ਵਰਤਣਾ ਚਾਹ ਸਕਦੇ ਹੋ ਜੇਕਰ ਤੁਸੀਂ ਕਿਸੇ ਅਸਾਧਾਰਨ ਬਾਇਨਰੀ ਫਾਰਮੈਟ ਨਾਲ ਫਾਇਲਾਂ ਜੋੜ ਰਹੇ ਹੋ. ਤੁਸੀਂ ਸਪਸ਼ਟ ਤੌਰ ਤੇ ( ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੇ ਆਬਜੈਕਟ ਫਾਇਲਾਂ ਨੂੰ ਲਿੰਕ ਕਰਦੇ ਸਮੇਂ) ਸਵਿੱਚ ਨੂੰ ਬਦਲਣ ਲਈ -b ਦਾ ਉਪਯੋਗ ਕਰ ਸਕਦੇ ਹੋ, ਹਰੇਕ ਭਾਗ ਦੇ ਇਕ ਖਾਸ ਫਾਰਮੈਟ ਤੋਂ ਪਹਿਲਾਂ - ਬੀ ਇੰਪੁੱਟ-ਫਾਰਮੈਟ ਨੂੰ ਸ਼ਾਮਲ ਕਰਕੇ.

ਡਿਫਾਲਟ ਫੌਰਮੈਟ ਵਾਤਾਵਰਨ ਵੈਰੀਏਬਲ "GNUTARGET" ਤੋਂ ਲਿਆ ਗਿਆ ਹੈ.

ਤੁਸੀਂ "ਟਾਰਗੇਟ" ਕਮਾਂਡ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਸਕ੍ਰਿਪਟ ਤੋਂ ਇਨਪੁਟ ਫਾਰਮੈਟ ਨੂੰ ਵੀ ਪਰਿਭਾਸ਼ਿਤ ਕਰ ਸਕਦੇ ਹੋ;

-ਸੀ ਐਮਆਰਆਈ-ਕਮਾਂਡਫਾਇਲ

--mri-script = MRI- ਕਮਾਂਡਫਾਇਲ

ਐਮਆਰਆਈ ਦੁਆਰਾ ਨਿਰਦੇਸਿਤ ਲਿੰਕ ਕਰਨ ਵਾਲਿਆਂ ਨਾਲ ਅਨੁਕੂਲਤਾ ਲਈ, ld ਇੱਕ ਅਨੁਸਾਰੀ, ਪਾਬੰਦੀਸ਼ੁਦਾ ਕਮਾਂਡ ਭਾਸ਼ਾ ਵਿੱਚ ਲਿਖੇ ਸਕ੍ਰਿਪਟ ਫਾਇਲਾਂ ਨੂੰ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ, GNU ld ਦਸਤਾਵੇਜ਼ ਦੇ ਐਮ ਆਰ ਆਈ ਅਨੁਕੂਲ ਸਕ੍ਰਿਪਟ ਫਾਇਲਾਂ ਭਾਗ ਵਿੱਚ ਦੱਸਿਆ ਗਿਆ ਹੈ. ਚੋਣ -ਸੀ ਦੁਆਰਾ ਐਮਆਰਆਈ ਸਕਰਿਪਟ ਫਾਈਲ ਪੇਸ਼ ਕਰੋ; ਆਮ ਮਕਸਦ ਮੰਤਵ ਸਕ੍ਰਿਪਟਿੰਗ ਭਾਸ਼ਾ ਵਿੱਚ ਲਿਖੇ ਲਿੰਕਰ ਸਕ੍ਰਿਪਟਾਂ ਨੂੰ ਚਲਾਉਣ ਲਈ -T ਚੋਣ ਦੀ ਵਰਤੋਂ ਕਰੋ. ਜੇ ਐਮਆਰਆਈ-ਸੀ.ਐਮ.ਡੀ.ਐਫ. ਫਾਈਲ ਮੌਜੂਦ ਨਹੀਂ ਹੈ, ld ਇਸ ਲਈ ਕਿਸੇ ਵੀ -L ਚੋਣ ਦੁਆਰਾ ਨਿਰਧਾਰਤ ਡਾਇਰੈਕਟਰੀਆਂ ਵਿੱਚ ਖੋਜ ਕਰਦਾ ਹੈ.

-d

-dc

-dp

ਇਹ ਤਿੰਨ ਵਿਕਲਪ ਬਰਾਬਰ ਹਨ; ਮਲਟੀਪਲ ਫਾਰਮਾਂ ਨੂੰ ਹੋਰ ਲਿੰਕਰਾਂ ਨਾਲ ਅਨੁਕੂਲਤਾ ਲਈ ਸਮਰਥਨ ਪ੍ਰਾਪਤ ਹੈ. ਉਹ ਆਮ ਚਿੰਨ੍ਹ ਨੂੰ ਸਪੇਸ ਦਿੰਦੇ ਹਨ ਭਾਵੇਂ ਇੱਕ ਆਬਾਦਤਮ ਆਉਟਪੁਟ ਫਾਇਲ ਨਿਸ਼ਚਿਤ ਹੋਵੇ (ਨਾਲ -r ). ਸਕਰਿਪਟ ਕਮਾਂਡ "FORCE_COMMON_ALLOCATION" ਦਾ ਇੱਕੋ ਪ੍ਰਭਾਵ ਹੈ

-ਈ ਐਂਟਰੀ

--entry = ਐਂਟਰੀ

ਡਿਫਾਲਟ ਐਂਟਰੀ ਪੁਆਇੰਟ ਦੀ ਬਜਾਏ ਤੁਹਾਡੇ ਪ੍ਰੋਗਰਾਮ ਦੀ ਸ਼ੁਰੂਆਤ ਲਈ ਸਪੱਸ਼ਟ ਚਿੰਨ੍ਹ ਵਜੋਂ ਐਂਟਰੀ ਵਰਤੋਂ. ਜੇਕਰ ਨਾਂ ਕੋਈ ਐਂਟਰੀ ਨਾਮ ਦਾ ਕੋਈ ਸੰਕੇਤ ਨਹੀਂ ਹੈ, ਤਾਂ ਲਿੰਕਰ ਇੱਕ ਨੰਬਰ ਦੇ ਤੌਰ ਤੇ ਐਂਟਰੀ ਨੂੰ ਪਾਰਸ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੇਗਾ, ਅਤੇ ਉਸ ਨੂੰ ਐਂਟਰੀ ਐਡਰੈੱਸ ਦੇ ਤੌਰ ਤੇ (ਨੰਬਰ 10 ਵਿੱਚ ਵਿਆਖਿਆ ਕੀਤੀ ਜਾਏਗੀ); ਤੁਸੀਂ ਬੇਸ 16 ਲਈ ਇੱਕ ਪ੍ਰਮੁੱਖ 0x ਦੀ ਵਰਤੋ ਕਰ ਸਕਦੇ ਹੋ, ਜਾਂ ਇੱਕ ਪ੍ਰਮੁੱਖ 0 ਆਧਾਰ 8 ਲਈ).

-ਈ

--export-dynamic

ਆਰਜੀ ਤੌਰ ਤੇ ਜੁੜੇ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਬਣਾਉਣ ਸਮੇਂ, ਡਾਇਨੈਮਿਕ ਸਿੰਬਲ ਟੇਬਲ ਦੇ ਸਾਰੇ ਚਿੰਨ੍ਹ ਜੋੜੋ. ਡਾਇਨਾਮਿਕ ਪ੍ਰਤੀਕ ਸਾਰਣੀ ਚਿੰਨ੍ਹ ਦਾ ਸੈੱਟ ਹੈ ਜੋ ਚੱਲਣ ਸਮੇਂ ਗਤੀਸ਼ੀਲ ਆਬਜੈਕਟ ਤੋਂ ਦਿਖਾਈ ਦੇ ਰਹੇ ਹਨ.

ਜੇ ਤੁਸੀਂ ਇਸ ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕਰਦੇ ਹੋ, ਤਾਂ ਡਾਇਨੈਮਿਕ ਪ੍ਰਤੀਕ ਸਾਰਣੀ ਵਿੱਚ ਆਮ ਤੌਰ ਤੇ ਸਿਰਫ਼ ਉਹੀ ਚਿੰਨ੍ਹ ਹੀ ਹੁੰਦੇ ਹਨ ਜੋ ਲਿੰਕ ਵਿੱਚ ਦਰਸਾਈਆਂ ਕੁਝ ਗਤੀਸ਼ੀਲ ਵਸਤੂਆਂ ਦੁਆਰਾ ਹਵਾਲਾ ਦਿੱਤੇ ਗਏ ਹਨ.

ਜੇ ਤੁਸੀਂ ਕਿਸੇ ਡਾਇਨਾਮਿਕ ਆਬਜੈਕਟ ਨੂੰ ਲੋਡ ਕਰਨ ਲਈ "dlopen" ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋ ਜਿਸ ਨੂੰ ਪ੍ਰੋਗਰਾਮ ਦੁਆਰਾ ਪ੍ਰਭਾਸ਼ਿਤ ਕੀਤੇ ਗਏ ਨਿਸ਼ਾਨਾਂ ਨੂੰ ਵਾਪਸ ਭੇਜਣ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਕਿਸੇ ਹੋਰ ਡਾਇਨਾਮਿਕ ਔਬਜੈਕਟ ਦੀ ਬਜਾਏ, ਇਸ ਪ੍ਰੋਗਰਾਮ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ ਤੁਹਾਨੂੰ ਸ਼ਾਇਦ ਇਸ ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਲੋੜ ਪਵੇਗੀ.

ਤੁਸੀਂ ਆਧੁਨਿਕ ਸੰਕੇਤ ਸਾਰਣੀ ਵਿੱਚ ਕਿਹੜੀਆਂ ਸੰਕੇਤਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਇਹ ਨਿਯੰਤਰਣ ਕਰਨ ਲਈ ਸੰਸਕਰਣ ਸਕਰਿਪਟ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ ਜੇਕਰ ਆਊਟਪੁਟ ਫੌਰਮੈਟ ਇਸਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ. @ ਰਿਵਰ {VERSION} ਵਿਚ --ਵਰਜਨ-ਸਕਰਿਪਟ ਦਾ ਵੇਰਵਾ ਵੇਖੋ.

-ਈਬੀ

ਵੱਡੇ-ਐਂਟੀਆਨ ਚੀਜ਼ਾਂ ਨੂੰ ਲਿੰਕ ਕਰੋ ਇਹ ਮੂਲ ਆਉਟਪੁੱਟ ਫਾਰਮੈਟ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕਰਦਾ ਹੈ.

-ਈਏਲ

ਥੋੜਾ-ਅੰਤੜੀ ਚੀਜ਼ਾਂ ਨੂੰ ਲਿੰਕ ਕਰੋ ਇਹ ਮੂਲ ਆਉਟਪੁੱਟ ਫਾਰਮੈਟ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕਰਦਾ ਹੈ.

-f

- ਜਾਇਜ਼ ਨਾਮ

ਇੱਕ ELF ਸ਼ੇਅਰ ਕੀਤੀ ਆਬਜੈਕਟ ਬਣਾਉਂਦੇ ਸਮੇਂ, ਅੰਦਰੂਨੀ DT_AUXILIARY ਫੀਲਡ ਨੂੰ ਨਿਸ਼ਚਿਤ ਨਾਮ ਤੇ ਸੈਟ ਕਰੋ. ਇਹ ਡਾਇਨਾਮਿਕ ਲਿੰਕਰ ਨੂੰ ਦੱਸਦਾ ਹੈ ਕਿ ਸਾਂਝਾ ਆਬਜੈਕਟ ਦੇ ਪ੍ਰਤੀਕ ਸਾਰਣੀ ਸ਼ੇਅਰ ਕੀਤੇ ਆਬਜੈਕਟ ਨਾਮ ਦੇ ਪ੍ਰਤੀਕ ਸਾਰਣੀ ਤੇ ਇੱਕ ਸਹਾਇਕ ਫਿਲਟਰ ਵਜੋਂ ਵਰਤਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ.

ਜੇਕਰ ਤੁਸੀਂ ਬਾਅਦ ਵਿੱਚ ਇੱਕ ਫਿਲਟਰ ਆਬਜੈਕਟ ਦੇ ਵਿਰੁੱਧ ਇੱਕ ਪ੍ਰੋਗਰਾਮ ਜੋੜਦੇ ਹੋ, ਤਾਂ, ਜਦੋਂ ਤੁਸੀਂ ਪ੍ਰੋਗਰਾਮ ਚਲਾਉਂਦੇ ਹੋ, ਤਾਂ ਡਾਇਨਾਮਿਕ ਲਿੰਕਰ DT_AUXILIARY ਫੀਲਡ ਨੂੰ ਦੇਖੇਗਾ. ਜੇਕਰ ਡਾਇਨਾਮਿਕ ਲਿੰਕਰ ਫਿਲਟਰ ਆਬਜੈਕਟ ਤੋਂ ਕਿਸੇ ਵੀ ਸੰਕੇਤ ਨੂੰ ਹੱਲ ਕਰਦਾ ਹੈ, ਤਾਂ ਇਹ ਪਹਿਲਾਂ ਇਹ ਪਤਾ ਲਗਾਵੇਗਾ ਕਿ ਸ਼ੇਅਰਡ ਆਬਜੈਕਟ ਨਾਂ ਵਿੱਚ ਕੋਈ ਪਰਿਭਾਸ਼ਾ ਹੈ ਜਾਂ ਨਹੀਂ. ਜੇ ਉੱਥੇ ਕੋਈ ਹੋਵੇ, ਤਾਂ ਇਸਦੀ ਵਰਤੋਂ ਫਿਲਟਰ ਆਬਜੈਕਟ ਦੀ ਪਰਿਭਾਸ਼ਾ ਦੀ ਬਜਾਏ ਵਰਤੀ ਜਾਏਗੀ. ਸ਼ੇਅਰ ਕੀਤੇ ਆਬਜੈਕਟ ਨਾਂ ਦੀ ਮੌਜੂਦਗੀ ਦੀ ਜ਼ਰੂਰਤ ਨਹੀਂ ਹੈ ਇਸ ਤਰ੍ਹਾਂ ਸ਼ੇਅਰਡ ਆਬਜੈਕਟ ਨਾਂ ਦਾ ਕੁਝ ਫੰਕਸ਼ਨਾਂ ਦਾ ਬਦਲਵਾਂ ਪਰਿਵਰਤਨ ਮੁਹੱਈਆ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ, ਸ਼ਾਇਦ ਡਿਬਗਿੰਗ ਲਈ ਜਾਂ ਮਸ਼ੀਨ-ਵਿਸ਼ੇਸ਼ ਪ੍ਰਦਰਸ਼ਨ ਲਈ.

ਇਹ ਚੋਣ ਇੱਕ ਤੋਂ ਵੱਧ ਵਾਰ ਨਿਸ਼ਚਿਤ ਹੋ ਸਕਦੀ ਹੈ. DT_ ਔਦਿਲੀ ਐਂਟਰੀਆਂ ਉਹ ਕ੍ਰਮ ਵਿੱਚ ਬਣਾਈਆਂ ਜਾਣਗੀਆਂ ਜਿਸ ਵਿੱਚ ਉਹ ਕਮਾਂਡ ਲਾਈਨ ਤੇ ਆਉਂਦੇ ਹਨ.

-F ਦਾ ਨਾਂ

--ਫਿਲਟਰ ਦਾ ਨਾਂ

ਇੱਕ ELF ਸ਼ੇਅਰ ਕੀਤੀ ਆਬਜੈਕਟ ਬਣਾਉਂਦੇ ਸਮੇਂ, ਅੰਦਰੂਨੀ DT_FILTER ਫੀਲਡ ਨੂੰ ਨਿਸ਼ਚਿਤ ਨਾਮ ਤੇ ਸੈਟ ਕਰੋ. ਇਹ ਡਾਇਨਾਮਿਕ ਲਿੰਕਰ ਨੂੰ ਦੱਸਦਾ ਹੈ ਕਿ ਸਾਂਝਾ ਆਬਜੈਕਟ ਦੀ ਪ੍ਰਤੀਕ ਸਾਰਣੀ ਜਿਸ ਨੂੰ ਬਣਾਇਆ ਜਾ ਰਿਹਾ ਹੈ, ਸ਼ੇਅਰਡ ਆਬਜੈਕਟ ਨਾਂ ਦੇ ਪ੍ਰਤੀਕ ਸਾਰਣੀ ਦੇ ਇੱਕ ਫਿਲਟਰ ਦੇ ਤੌਰ ਤੇ ਵਰਤਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ.

ਜੇਕਰ ਤੁਸੀਂ ਬਾਅਦ ਵਿੱਚ ਇੱਕ ਫਿਲਟਰ ਆਬਜੈਕਟ ਦੇ ਵਿਰੁੱਧ ਇੱਕ ਪ੍ਰੋਗਰਾਮ ਜੋੜਦੇ ਹੋ, ਤਾਂ, ਜਦੋਂ ਤੁਸੀਂ ਪ੍ਰੋਗਰਾਮ ਚਲਾਉਗੇ, ਤਾਂ ਡਾਇਨੇਮਿਕ ਲਿੰਕਰ DT_FILTER ਫੀਲਡ ਨੂੰ ਦੇਖੇਗਾ. ਡਾਇਨਾਮਿਕ ਲਿੰਕਰ ਫਿਲਟਰ ਆਬਜੈਕਟ ਦੇ ਪ੍ਰਤੀਰੂਪ ਸਾਰਣੀ ਅਨੁਸਾਰ ਆਮ ਤੌਰ ਤੇ ਸੰਕੇਤ ਨੂੰ ਹੱਲ ਕਰੇਗਾ, ਪਰ ਇਹ ਅਸਲ ਵਿੱਚ ਸ਼ੇਅਰਡ ਆਬਜੈਕਟ ਨਾਂ ਵਿੱਚ ਪਾਈ ਜਾਣ ਵਾਲੀ ਪਰਿਭਾਸ਼ਾ ਨਾਲ ਜੁੜੇਗਾ. ਇਸ ਤਰ੍ਹਾਂ, ਵਸਤੂ ਦਾ ਵਸਤੂ ਨੂੰ ਵਸਤੂ ਦੇ ਨਾਮ ਦੁਆਰਾ ਦਿੱਤੇ ਚਿੰਨ੍ਹ ਦੇ ਸਬਸੈੱਟ ਦੀ ਚੋਣ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ.

ਕੁਝ ਪੁਰਾਣੇ ਲਿੰਕਰ ਇਨਫੁਟ ਅਤੇ ਆਊਟਪੁੱਟ ਆਬਜੈਕਟ ਫਾਈਲਾਂ ਦੋਨਾਂ ਲਈ ਇਕਾਈ-ਫਾਈਲ ਫਾਰਮੇਟ ਨੂੰ ਸਪਸ਼ਟ ਕਰਨ ਲਈ ਕੰਪਲੇਸ਼ਨ ਟੂਲਚੇਨ ਦੌਰਾਨ -F ਚੋਣ ਵਰਤੇ. GNU ਲਿੰਕਰ ਇਸ ਉਦੇਸ਼ ਲਈ ਹੋਰ ਢੰਗ ਵਰਤਦਾ ਹੈ: -b , --format , --oformat ਚੋਣਾਂ, ਲਿੰਕਰ ਸਕ੍ਰਿਪਟਾਂ ਵਿੱਚ "TARGET" ਕਮਾਂਡ, ਅਤੇ "ਜੀ ਐਨ ਓਟਰਗੇਟ" ਵਾਤਾਵਰਨ ਵੇਰੀਏਬਲ. ਐੱਲ ਐੱਫ ਸ਼ੇਅਰਡ ਔਬਜੈਕਟ ਨਾ ਬਣਾਉਣ ਵੇਲੇ GNU ਲਿੰਕਰ -ਐਫ ਦੀ ਚੋਣ ਨੂੰ ਅਣਡਿੱਠ ਕਰ ਦੇਵੇਗਾ.

-ਫਿਨੀ ਨਾਮ

ਇੱਕ ELF ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਜਾਂ ਸ਼ੇਅਰਡ ਔਬਜੈਕਟ ਬਣਾਉਂਦੇ ਸਮੇਂ, NAME ਨੂੰ ਕਾਲ ਕਰੋ ਜਦੋਂ ਐਕਜ਼ੀਕਿਊਟੇਬਲ ਜਾਂ ਸ਼ੇਅਰਡ ਔਬਜੈਕਟ ਅਨਲੋਡ ਹੋ ਜਾਂਦਾ ਹੈ, DT_FINI ਨੂੰ ਫੰਕਸ਼ਨ ਦੇ ਪਤੇ ਤੇ ਸੈਟ ਕਰਕੇ. ਡਿਫੌਲਟ ਰੂਪ ਵਿੱਚ, ਲਿੰਕਰ ਕਾਲ ਕਰਨ ਦੇ ਫੰਕਸ਼ਨ ਦੇ ਤੌਰ ਤੇ "_ਫਿਨੀ" ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ.

-ਜੀ

ਅਣਗੌਲਿਆ ਗਿਆ ਦੂਜੇ ਸਾਧਨਾਂ ਨਾਲ ਅਨੁਕੂਲਤਾ ਲਈ ਪ੍ਰਦਾਨ ਕੀਤੀ ਗਈ.

-G ਮੁੱਲ

--gpsize = ਮੁੱਲ

ਜੀ ਪੀ ਰਜਿਸਟਰ ਨੂੰ ਆਕਾਰ ਦੁਆਰਾ ਅਨੁਕੂਲ ਬਣਾਉਣ ਲਈ ਆਬਜੈਕਟ ਦਾ ਵੱਧ ਤੋਂ ਵੱਧ ਆਕਾਰ ਲਗਾਓ. ਇਹ ਸਿਰਫ ਆਬਜੈਕਟ ਫਾਇਲ ਫਾਰਮੈਟਾਂ ਲਈ ਅਰਥਪੂਰਣ ਹੈ ਜਿਵੇਂ ਕਿ MIPS ECOFF ਜੋ ਵੱਡੀਆਂ ਅਤੇ ਛੋਟੀਆਂ ਵਸਤੂਆਂ ਨੂੰ ਵੱਖ-ਵੱਖ ਭਾਗਾਂ ਵਿੱਚ ਰੱਖਣ ਲਈ ਸਹਿਯੋਗ ਦਿੰਦਾ ਹੈ. ਇਸ ਨੂੰ ਹੋਰ ਆਬਜੈਕਟ ਫਾਇਲ ਫਾਰਮੈਟਾਂ ਲਈ ਅਣਡਿੱਠਾ ਕਰ ਦਿੱਤਾ ਗਿਆ ਹੈ.

-h ਨਾਮ

-ਸੋਨਾਮਾ = ਨਾਂ

ਇੱਕ ELF ਸ਼ੇਅਰ ਕੀਤੀ ਆਬਜੈਕਟ ਬਣਾਉਂਦੇ ਸਮੇਂ, ਅੰਦਰੂਨੀ DT_SONAME ਫੀਲਡ ਨੂੰ ਨਿਸ਼ਚਿਤ ਨਾਮ ਤੇ ਸੈਟ ਕਰੋ. ਜਦੋਂ ਇੱਕ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਇੱਕ ਸ਼ੇਅਰਡ ਔਬਜੈਕਟ ਨਾਲ ਜੁੜਿਆ ਹੁੰਦਾ ਹੈ ਜਿਸ ਵਿੱਚ ਇੱਕ DT_SONAME ਫੀਲਡ ਹੁੰਦਾ ਹੈ, ਫਿਰ ਜਦੋਂ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਡਾਈਨੈਮਿਕ ਲਿੰਕਰ ਚਲਾਉਂਦਾ ਹੈ, ਤਾਂ ਲਿੰਕਰ ਨੂੰ ਦਿੱਤੇ ਗਏ ਫਾਈਲ ਨਾਮ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਬਜਾਏ DT_SONAME ਫੀਲਡ ਦੁਆਰਾ ਨਿਰਦਿਸ਼ਟ ਸਾਂਝੀ ਆਬਜੈਕਟ ਨੂੰ ਲੋਡ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਜਾਵੇਗੀ.

-i

ਇਕ ਵਾਧਾ ਸੰਬੰਧ ਬਣਾਉ (ਵਿਕਲਪ- ਆਰ ਵਾਂਗ ਹੀ).

-ਇਨਿਟ ਨਾਂ

ਇਕ ELF ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਜਾਂ ਸ਼ੇਅਰਡ ਆਬਜੈਕਟ ਬਣਾਉਂਦੇ ਸਮੇਂ, NAME ਨੂੰ ਕਾਲ ਕਰੋ ਜਦੋਂ ਐਕਜ਼ੀਕਿਊਟੇਬਲ ਜਾਂ ਸਾਂਝਾ ਆਬਜੈਕਟ ਲੋਡ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, DT_INIT ਨੂੰ ਫੰਕਸ਼ਨ ਦੇ ਪਤੇ ਤੇ ਸੈਟ ਕਰਕੇ. ਡਿਫੌਲਟ ਰੂਪ ਵਿੱਚ, ਲਿੰਕਰ ਕਾਲ ਕਰਨ ਦੇ ਫੰਕਸ਼ਨ ਦੇ ਤੌਰ ਤੇ "_init" ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ.

-l ਆਰਕਾਈਵ

--library = ਆਰਕਾਈਵ

ਲਿੰਕ ਕਰਨ ਲਈ ਫਾਇਲਾਂ ਦੀ ਸੂਚੀ ਵਿੱਚ ਅਕਾਇਵ ਫਾਈਲ ਆਰਕਾਈਵ ਜੋੜੋ. ਇਹ ਵਿਕਲਪ ਕਿਸੇ ਵੀ ਸਮੇਂ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ ld ਦਿੱਤੇ ਗਏ ਹਰੇਕ ਅਕਾਇਵ ਲਈ "libarchive.a" ਦੀ ਮੌਜੂਦਗੀ ਲਈ ਇਸ ਦੀ ਪਾਥ-ਲਿਸਟ ਖੋਜੇਗਾ.

ਸ਼ੇਅਰਡ ਲਾਇਬਰੇਰੀਆਂ ਨੂੰ ਸਹਿਯੋਗ ਦੇਣ ਵਾਲੀਆਂ ਪ੍ਰਣਾਲੀਆਂ ਤੇ, ld ".a" ਤੋਂ ਇਲਾਵਾ ਹੋਰ ਐਕਸਟੈਂਸ਼ਨਾਂ ਸਮੇਤ ਲਾਇਬਰੇਰੀਆਂ ਦੀ ਖੋਜ ਵੀ ਕਰ ਸਕਦਾ ਹੈ. ਖਾਸ ਕਰਕੇ, ਐੱਲ ਐਫ ਅਤੇ ਸਨOS ਪ੍ਰਣਾਲੀਆਂ ਤੇ, ". ਏ" ਦੇ ਇੱਕ ਐਕਸਟੈਨਸ਼ਨ ਦੇ ਨਾਲ ਇੱਕ ਦੀ ਖੋਜ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ".so" ਦੇ ਇੱਕ ਐਕਸਟੈਨਸ਼ਨ ਦੇ ਨਾਲ ld ਇੱਕ ਲਾਇਬਰੇਰੀ ਲਈ ਇੱਕ ਡਾਇਰੈਕਟਰੀ ਲੱਭੇਗਾ. ਸੰਮੇਲਨ ਦੁਆਰਾ, ਇੱਕ ".so" ਐਕਸਟੈਂਸ਼ਨ ਇੱਕ ਸਾਂਝੀ ਲਾਇਬ੍ਰੇਰੀ ਨੂੰ ਦਰਸਾਉਂਦੀ ਹੈ.

ਲਿੰਕਰ ਇਕ ਆਰਕਾਈਵ ਨੂੰ ਸਿਰਫ ਇੱਕ ਵਾਰ ਖੋਜੇਗਾ, ਜਿੱਥੇ ਉਸ ਨੂੰ ਕਮਾਂਡ ਲਾਈਨ ਤੇ ਨਿਰਦਿਸ਼ਟ ਕੀਤਾ ਗਿਆ ਹੈ. ਜੇ ਅਕਾਇਵ ਇੱਕ ਚਿੰਨ੍ਹ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ ਜੋ ਕਿ ਕਿਸੇ ਆਬਜੈਕਟ ਵਿੱਚ ਅਣਪਛਿਆ ਹੋਇਆ ਹੈ ਜੋ ਕਿ ਕਮਾਂਡ ਲਾਈਨ ਉੱਤੇ ਅਕਾਇਵ ਤੋਂ ਪਹਿਲਾਂ ਪ੍ਰਗਟ ਹੋਇਆ ਸੀ, ਤਾਂ ਲਿੰਕਰ ਅਕਾਇਵ ਤੋਂ ਢੁਕਵੀਂ ਫਾਈਲ (ਫਾਈਲਾਂ) ਸ਼ਾਮਲ ਕਰੇਗਾ. ਹਾਲਾਂਕਿ, ਕਿਸੇ ਆਬਜੈਕਟ ਵਿੱਚ ਅਣਪਛਾਤਾ ਕੀਤੇ ਚਿੰਨ੍ਹ ਨੂੰ ਬਾਅਦ ਵਿੱਚ ਕਮਾਂਡ ਲਾਈਨ ਉੱਤੇ ਦਿਖਾਈ ਦੇਣ ਨਾਲ ਲਿੰਕਰ ਨੂੰ ਪੁਰਾਲੇਖ ਨੂੰ ਮੁੜ ਖੋਜ ਕਰਨ ਦਾ ਕਾਰਨ ਨਹੀਂ ਮਿਲੇਗਾ.

ਵੇਖੋ - ( ਅਕਾਇਵ ਨੂੰ ਕਈ ਵਾਰ ਲੱਭਣ ਲਈ ਲਿੰਕਰ ਨੂੰ ਮਜਬੂਰ ਕਰਨ ਦਾ ਤਰੀਕਾ.

ਤੁਸੀਂ ਕਮਾਂਡ ਲਾਈਨ ਤੇ ਉਸੇ ਅਕਾਇਵ ਨੂੰ ਕਈ ਵਾਰ ਸੂਚੀਬੱਧ ਕਰ ਸਕਦੇ ਹੋ.

ਇਸ ਕਿਸਮ ਦੇ ਅਕਾਇਵ ਦੀ ਖੋਜ ਯੂਨਿਕਸ ਲਿੰਕਰ ਲਈ ਮਿਆਰੀ ਹੈ. ਹਾਲਾਂਕਿ, ਜੇਕਰ ਤੁਸੀਂ ld onAIX ਵਰਤ ਰਹੇ ਹੋ, ਤਾਂ ਨੋਟ ਕਰੋ ਕਿ ਇਹ AIX ਲਿੰਕਰ ਦੇ ਵਿਵਹਾਰ ਤੋਂ ਵੱਖ ਹੈ.

-L ਖੋਜ ਡੀ

- ਲਾਇਬਰੇਰੀ-ਮਾਰਗ = ਖੋਜ ਡੀ

ਮਾਰਗ ਦੀ ਸੂਚੀ ਵਿੱਚ pathd searchdir ਸ਼ਾਮਿਲ ਕਰੋ ਜੋ ld ਆਰਚੀਵ ਲਾਇਬਰੇਰੀਆਂ ਅਤੇ ld ਕੰਟਰੋਲ ਸਕ੍ਰਿਪਟਾਂ ਲਈ ਖੋਜ ਕਰੇਗਾ. ਤੁਸੀਂ ਇਸ ਚੋਣ ਨੂੰ ਕਈ ਵਾਰੀ ਵਰਤ ਸਕਦੇ ਹੋ. ਡਾਇਰੈਕਟਰੀਆਂ ਉਸ ਕ੍ਰਮ ਵਿੱਚ ਖੋਜੀਆਂ ਗਈਆਂ ਹਨ ਜਿਸ ਵਿੱਚ ਉਹ ਕਮਾਂਡ ਲਾਈਨ ਤੇ ਨਿਰਦਿਸ਼ਟ ਹਨ. ਕਮਾਂਡ ਲਾਈਨ ਤੇ ਨਿਰਦਿਸ਼ਟ ਡਾਇਰੈਕਟਰੀਆਂ ਨੂੰ ਮੂਲ ਡਾਇਰੈਕਟਰੀ ਤੋਂ ਪਹਿਲਾਂ ਖੋਜਿਆ ਜਾਂਦਾ ਹੈ. ਆਲ ਐਲ-ਐਲ ਵਿਕਲਪ ਸਾਰੇ- ਐਲ ਵਿਕਲਪਾਂ ਤੇ ਲਾਗੂ ਹੁੰਦੇ ਹਨ, ਭਾਵੇਂ ਕ੍ਰਮ ਅਨੁਸਾਰ ਵਿਕਲਪ ਦਿਖਾਈ ਦਿੰਦੇ ਹੋਣ.

ਜੇ searchdir "=" ਨਾਲ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ, ਤਾਂ "=" ਨੂੰ sysroot prefix ਦੁਆਰਾ ਬਦਲਿਆ ਜਾਵੇਗਾ, ਇੱਕ ਖਾਸ ਮਾਰਗ, ਜੋ ਕਿ ਲਿੰਕਰ ਦੀ ਸੰਰਚਨਾ ਹੋਵੇ.

ਖੋਜੇ ਗਏ ਪਾਥਾਂ ਦਾ ਮੂਲ ਸਮੂਹ ( -L ਨਾਲ ਨਿਰਧਾਰਤ ਕੀਤੇ ਬਿਨਾਂ) ਇਹ ਨਿਰਭਰ ਕਰਦਾ ਹੈ ਕਿ ਕਿਹੜੀ ਇਮੂਲੇਸ਼ਨ ਮੋਡ ld ਵਰਤ ਰਿਹਾ ਹੈ, ਅਤੇ ਕੁਝ ਹਾਲਤਾਂ ਵਿੱਚ ਵੀ ਇਹ ਕਿਵੇਂ ਸੰਰਚਿਤ ਕੀਤਾ ਗਿਆ ਸੀ.

ਪਾਥ ਨੂੰ ਲਿੰਕ ਸਤਰਾਂ ਵਿੱਚ "SEARCH_DIR" ਕਮਾਂਡ ਨਾਲ ਵੀ ਦਰਸਾਇਆ ਜਾ ਸਕਦਾ ਹੈ. ਡਾਇਰੈਕਟਰੀਆਂ ਨੇ ਇਸ ਤਰੀਕੇ ਨਾਲ ਨਿਸ਼ਚਤ ਕੀਤਾ ਹੈ ਕਿ ਉਸ ਥਾਂ ਤੇ ਖੋਜ ਕੀਤੀ ਗਈ ਹੈ ਜਿਸ ਵਿੱਚ ਲਿੰਕਰ ਸਕ੍ਰਿਪਟ ਕਮਾਂਡ ਲਾਈਨ ਤੇ ਦਿਖਾਈ ਦਿੰਦੀ ਹੈ.

-ਮੀ ਇਮੂਲੇਸ਼ਨ

ਇਮੂਲੇਸ਼ਨ ਲਿੰਕਰ ਨੂੰ ਇਮੂਲੇਟ ਕਰੋ ਤੁਸੀਂ --verbose ਜਾਂ -V ਵਿਕਲਪਾਂ ਦੇ ਨਾਲ ਉਪਲੱਬਧ ਇਮੂਲੇਸ਼ਨਾਂ ਨੂੰ ਸੂਚੀਬੱਧ ਕਰ ਸਕਦੇ ਹੋ.

ਜੇ -m ਚੋਣ ਵਰਤੀ ਨਹੀਂ ਜਾਂਦੀ, ਇਮੂਲੇਸ਼ਨ ਨੂੰ "LDEMULATION" ਵਾਤਾਵਰਨ ਵੇਰੀਏਬਲ ਤੋਂ ਲਿਆ ਜਾਂਦਾ ਹੈ, ਜੇ ਇਹ ਪ੍ਰਭਾਸ਼ਿਤ ਹੈ.

ਨਹੀਂ ਤਾਂ, ਡਿਫਾਲਟ ਐਮੂਲੇਸ਼ਨ ਇਹ ਨਿਰਭਰ ਕਰਦਾ ਹੈ ਕਿ ਲਿੰਕਰ ਕਿਵੇਂ ਕੌਂਫਿਗਰ ਕੀਤਾ ਗਿਆ ਸੀ.

-ਮ

--print-map

ਮਿਆਰੀ ਆਉਟਪੁੱਟ ਤੇ ਇੱਕ ਲਿੰਕ ਦਾ ਨਕਸ਼ਾ ਛਾਪੋ ਇੱਕ ਲਿੰਕ ਨਕਸ਼ਾ ਹੇਠਾਂ ਦਿੱਤੇ ਸਮੇਤ ਲਿੰਕ ਬਾਰੇ ਜਾਣਕਾਰੀ ਮੁਹੱਈਆ ਕਰਦਾ ਹੈ:

*

ਜਿੱਥੇ ਆਬਜੈਕਟ ਫਾਇਲਾਂ ਅਤੇ ਚਿੰਨ੍ਹ ਨੂੰ ਮੈਮਰੀ ਵਿੱਚ ਮੈਪ ਕੀਤਾ ਜਾਂਦਾ ਹੈ.

*

ਆਮ ਚਿੰਨ੍ਹ ਕਿਵੇਂ ਨਿਰਧਾਰਤ ਕੀਤੇ ਜਾਂਦੇ ਹਨ

*

ਸਾਰੇ ਅਕਾਇਵ ਮੈਂਬਰਾਂ ਨੂੰ ਲਿੰਕ ਵਿਚ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ ਸੀ, ਜਿਸ ਦਾ ਇਕ ਚਿੰਨ੍ਹ ਸੀ ਜਿਸ ਵਿਚ ਅਕਾਇਵ ਦੇ ਮੈਂਬਰ ਨੂੰ ਲਿਆਉਣਾ ਹੁੰਦਾ ਸੀ.

-n

--nmagic

ਸੈਕਸ਼ਨਾਂ ਦੇ ਪੇਜ਼ ਅਨੁਕੂਲਤਾ ਨੂੰ ਬੰਦ ਕਰੋ ਅਤੇ ਆਉਟਪੁੱਟ ਨੂੰ "NMAGIC" ਦੇ ਤੌਰ ਤੇ ਸੰਕੇਤ ਕਰੋ ਜੇ ਹੋ ਸਕੇ.

-ਐਨ

--omagic

ਪਾਠ ਅਤੇ ਡਾਟਾ ਸੈਕਸ਼ਨ ਨੂੰ ਪੜ੍ਹਨਯੋਗ ਅਤੇ ਲਿਖਣਯੋਗ ਬਣਾਉਣ ਲਈ ਸੈੱਟ ਕਰੋ. ਨਾਲ ਹੀ, ਡੈਟਾ ਸੈਗਮੈਂਟ ਨੂੰ ਪੇਜ-ਅਲਾਈਨ ਨਾ ਕਰੋ ਅਤੇ ਸ਼ੇਅਰਡ ਲਾਇਬ੍ਰੇਰੀਆਂ ਦੇ ਵਿਰੁੱਧ ਲਿੰਕ ਨੂੰ ਅਸਮਰੱਥ ਕਰੋ. ਜੇ ਆਉਟਪੁੱਟ ਮਾਡਲਾਂ ਯੂਨਿਕਸ ਸਟਾਈਲ ਮੈਜਿਕ ਨੰਬਰ ਨੂੰ ਸਹਿਯੋਗ ਦਿੰਦਾ ਹੈ, ਤਾਂ ਆਉਟਪੁਟ ਨੂੰ "ਓਮੈਗਿਕ" ਦੇ ਤੌਰ ਤੇ ਨਿਸ਼ਾਨਬੱਧ ਕਰੋ.

--no-omagic

ਇਹ ਵਿਕਲਪ- N ਚੋਣ ਦੇ ਬਹੁਤੇ ਪ੍ਰਭਾਵਾਂ ਨੂੰ ਨਕਾਰਿਆ. ਇਹ ਪਾਠ ਭਾਗ ਨੂੰ ਸਿਰਫ-ਪੜਨ ਲਈ ਸੈਟ ਕਰਦਾ ਹੈ ਅਤੇ ਡਾਟਾ ਸੈਕਸ਼ਨ ਨੂੰ ਸਫ਼ਾ-ਅਲਾਈਨ ਕਰਨ ਲਈ ਮਜਬੂਰ ਕਰਦਾ ਹੈ ਨੋਟ - ਇਹ ਚੋਣ ਸ਼ੇਅਰਡ ਲਾਇਬ੍ਰੇਰੀਆਂ ਦੇ ਨਾਲ ਜੋੜਨ ਨੂੰ ਸਮਰੱਥ ਨਹੀਂ ਕਰਦੀ. ਇਸ ਲਈ -ਦਬਾਉ ਦੀ ਵਰਤੋਂ ਕਰੋ.

-o ਆਊਟਪੁਟ

--output = ਆਉਟਪੁੱਟ

Ld ਦੁਆਰਾ ਤਿਆਰ ਕੀਤੇ ਪ੍ਰੋਗਰਾਮ ਲਈ ਨਾਮ ਦੇ ਤੌਰ ਤੇ ਆਉਟਪੁਟ ਦੀ ਵਰਤੋਂ ਕਰੋ; ਜੇਕਰ ਇਹ ਚੋਣ ਨਿਸ਼ਚਿਤ ਨਹੀਂ ਕੀਤੀ ਗਈ ਹੈ, ਤਾਂ ਨਾਮ a.out ਮੂਲ ਰੂਪ ਵਿੱਚ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ. ਸਕ੍ਰਿਪਟ ਆਦੇਸ਼ "OUTPUT" ਵੀ ਆਉਟਪੁਟ ਫਾਈਲ ਨਾਮ ਨੂੰ ਦਰਸਾ ਸਕਦੀ ਹੈ.

-O ਪੱਧਰ

ਜੇ ਸਤਰ ਇੱਕ ਅੰਕੀ ਮੁੱਲ ਹੈ ਜੋ ਜ਼ੀਰੋ ਤੋਂ ਵੱਡਾ ਹੈ ਤਾਂ ld ਆਉਟਪੁੱਟ ਨੂੰ ਅਨੁਕੂਲ ਬਣਾਉਂਦਾ ਹੈ. ਇਹ ਕਾਫੀ ਲੰਬਾ ਸਮਾਂ ਲੈ ਸਕਦਾ ਹੈ ਅਤੇ ਇਸ ਲਈ ਸੰਭਵ ਤੌਰ ਤੇ ਸਿਰਫ ਫਾਈਨਲ ਬਾਈਨਰੀ ਲਈ ਯੋਗ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ.

-q

--emit-relocs

ਪੂਰੀ ਤਰ੍ਹਾਂ ਨਾਲ ਜੁੜੇ ਹੋਏ ਐਕਸਟੇਕਟੇਬਲਜ਼ ਵਿਚ ਤਬਦੀਲੀ ਪੱਧਰਾਂ ਅਤੇ ਸਮੱਗਰੀਆਂ ਛੱਡੋ. ਪੋਸਟ-ਲਿੰਕ ਵਿਸ਼ਲੇਸ਼ਣ ਅਤੇ ਅਨੁਕੂਲਤਾ ਸਾਧਨਾਂ ਨੂੰ ਚਲਾਉਣ ਲਈ ਸਹੀ ਜਾਣਕਾਰੀ ਦੇਣ ਲਈ ਇਸ ਜਾਣਕਾਰੀ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ. ਇਹ ਵੱਡੇ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਵਿੱਚ ਨਤੀਜਾ ਹੈ

ਇਹ ਚੋਣ ਵਰਤਮਾਨ ਵਿੱਚ ਕੇਵਲ ELF ਪਲੇਟਫਾਰਮਾਂ ਤੇ ਸਮਰਥਿਤ ਹੈ.

-r

--Relocateable

ਮੁੜ ਨਿਰਭਰ ਆਉਟਪੁੱਟ ਤਿਆਰ ਕਰੋ --- ਅਰਥਾਤ, ਇੱਕ ਆਉਟਪੁੱਟ ਫਾਇਲ ਬਣਾਉ ਜੋ ਬਾਅਦ ਵਿੱਚ ld ਨੂੰ ਇੰਪੁੱਟ ਦੇ ਰੂਪ ਵਿੱਚ ਕੰਮ ਕਰ ਸਕਦੀ ਹੈ. ਇਸ ਨੂੰ ਅਕਸਰ ਅਧੂਰਾ ਜੋੜਨ ਕਿਹਾ ਜਾਂਦਾ ਹੈ. ਮਾਊਂਟੇਨਡ ਯੂਨਿਕਸ ਮੈਜਿਕ ਨੰਬਰਾਂ ਦਾ ਸਮਰਥਨ ਕਰਨ ਵਾਲੀਆਂ ਵਾਤਾਵਰਣਾਂ ਵਿੱਚ, ਇਹ ਵਿਕਲਪ ਆਉਟਪੁਟ ਫਾਈਲ ਦੇ ਮੈਜਿਕ ਨੰਬਰ ਨੂੰ "ਓਮੇਗਿਕ" ਵਿੱਚ ਸੈਟ ਕਰਦਾ ਹੈ. ਜੇ ਇਹ ਚੋਣ ਨਿਸ਼ਚਿਤ ਨਹੀਂ ਕੀਤੀ ਗਈ ਹੈ, ਤਾਂ ਇਕ ਅਸਲੀ ਫਾਇਲ ਤਿਆਰ ਕੀਤੀ ਜਾਂਦੀ ਹੈ. ਜਦੋਂ C ++ ਪ੍ਰੋਗਰਾਮ ਜੋੜਦੇ ਹਾਂ, ਇਹ ਵਿਕਲਪ ਕੰਸਟ੍ਰਕਟਰਾਂ ਦੇ ਹਵਾਲਿਆਂ ਨੂੰ ਹੱਲ ਨਹੀਂ ਕਰੇਗਾ ; ਇਹ ਕਰਨ ਲਈ, -Ur ਵਰਤੋਂ.

ਜਦੋਂ ਇੱਕ ਇਨਪੁਟ ਫਾਈਲ ਵਿੱਚ ਆਉਟਪੁੱਟ ਫਾਈਲ ਦੇ ਰੂਪ ਵਿੱਚ ਸਮਾਨ ਰੂਪ ਨਹੀਂ ਹੁੰਦਾ, ਤਾਂ ਅੰਸ਼ਕ ਲਿੰਕਿੰਗ ਕੇਵਲ ਉਦੋਂ ਸਮਰਥਿਤ ਹੁੰਦੀ ਹੈ ਜੇਕਰ ਉਸ ਇਨਪੁਟ ਫਾਈਲ ਵਿੱਚ ਕਿਸੇ ਵੀ ਮੁੜ ਸਥਾਪਨਾ ਨਹੀਂ ਹੁੰਦੀ. ਵੱਖ ਵੱਖ ਆਊਟਪੁੱਟ ਫਾਰਮੈਟਾਂ ਦੀਆਂ ਹੋਰ ਪਾਬੰਦੀਆਂ ਹੋ ਸਕਦੀਆਂ ਹਨ; ਉਦਾਹਰਨ ਲਈ ਕੁਝ "a.out" - ਅਧਾਰਿਤ ਫਾਰਮੈਟ ਕੁਝ ਹੋਰ ਫਾਰਮੈਟਾਂ ਵਿੱਚ ਇੰਪੁੱਟ ਫਾਇਲਾਂ ਨਾਲ ਅੰਸ਼ਕ ਜੋੜਨ ਲਈ ਸਹਿਯੋਗ ਨਹੀਂ ਦਿੰਦੇ ਹਨ.

ਇਹ ਵਿਕਲਪ -i ਦੇ ਬਰਾਬਰ ਹੀ ਹੈ.

-R ਫਾਇਲ ਦਾ ਨਾਂ

--just-symbols = filename

ਫਾਈਲ ਦਾ ਨਾਮ ਤੋਂ ਚਿੰਨ੍ਹ ਨਾਮ ਅਤੇ ਉਹਨਾਂ ਦੇ ਪਤਿਆਂ ਨੂੰ ਪੜ੍ਹੋ, ਪਰ ਇਸਨੂੰ ਦੁਬਾਰਾ ਸਥਾਪਿਤ ਨਾ ਕਰੋ ਜਾਂ ਇਸ ਨੂੰ ਆਊਟਪੁੱਟ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ. ਇਹ ਤੁਹਾਡੀ ਆਉਟਪੁੱਟ ਫਾਈਲ ਨੂੰ ਸੰਬੋਧਿਤ ਤੌਰ ਤੇ ਹੋਰ ਪ੍ਰੋਗਰਾਮਾਂ ਵਿੱਚ ਪ੍ਰਭਾਸ਼ਿਤ ਮੈਮੋਰੀ ਦੇ ਪੂਰੇ ਟਿਕਾਣੇ ਤੇ ਸੰਕੇਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ ਤੁਸੀਂ ਇਸ ਵਿਕਲਪ ਨੂੰ ਇਕ ਤੋਂ ਵੱਧ ਵਾਰ ਵਰਤ ਸਕਦੇ ਹੋ.

ਹੋਰ ਐੱਲ ਐੱਫ ਲਿੰਕਰਾਂ ਨਾਲ ਅਨੁਕੂਲਤਾ ਲਈ, ਜੇ -R ਚੋਣ ਨੂੰ ਇੱਕ ਫਾਈਲ ਨਾਂ ਦੀ ਬਜਾਏ ਇੱਕ ਡਾਇਰੈਕਟਰੀ ਨਾਮ ਦੁਆਰਾ ਪਾਲਣਾ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਇਸ ਨੂੰ -rpath ਵਿਕਲਪ ਮੰਨਿਆ ਜਾਂਦਾ ਹੈ.

-ਸ

--ਸਟ੍ਰਿਪ-ਸਭ

ਆਉਟਪੁੱਟ ਫਾਇਲ ਤੋਂ ਸਭ ਨਿਸ਼ਾਨ ਜਾਣਕਾਰੀ ਨੂੰ ਨਾ ਛੱਡੋ.

-ਸੀ

--ਸਟ੍ਰਿਪ-ਡੀਬੱਗ

ਆਉਟਪੁੱਟ ਫਾਇਲ ਤੋਂ ਡੀਬੱਗਰ ਚਿੰਨ੍ਹ ਜਾਣਕਾਰੀ (ਪਰ ਸਾਰੇ ਚਿੰਨ੍ਹ) ਨੂੰ ਛੱਡੋ

-ਟੀ

--trace

ਇਨਪੁਟ ਫਾਈਲਾਂ ਦੇ ਨਾਮ ਪ੍ਰਿੰਟ ਕਰੋ ਜਿਵੇਂ ਕਿ ld ਉਨ੍ਹਾਂ ਨੂੰ ਪਰਗਟ ਕਰਦਾ ਹੈ.

-T ਸਕ੍ਰਿਪਟਫਾਇਲ

--script = ਸਕ੍ਰਿਪਟਫਾਇਲ

ਲਿੰਕਡਰ ਸਕ੍ਰਿਪਟ ਵਜੋਂ ਸਕ੍ਰਿਪਟਫਾਇਲ ਦੀ ਵਰਤੋਂ ਕਰੋ. ਇਹ ਸਕਰਿਪਟ ld ਦੀ ਮੂਲ ਲਿੰਕਰ ਸਕ੍ਰਿਪਟ (ਇਸ ਨੂੰ ਜੋੜਨ ਦੀ ਬਜਾਏ) ਦੀ ਥਾਂ ਲੈਂਦੀ ਹੈ, ਇਸ ਲਈ ਕਮਾਂਡਫਾਇਲ ਨੂੰ ਆਉਟਪੁੱਟ ਫਾਇਲ ਨੂੰ ਦਰਸਾਉਣ ਲਈ ਸਭ ਕੁਝ ਜਰੂਰੀ ਹੈ. ਜੇ ਸਕ੍ਰਿਪਟਫਾਇਲ ਮੌਜੂਦਾ ਡਾਇਰੈਕਟਰੀ ਵਿਚ ਮੌਜੂਦ ਨਹੀਂ ਹੈ, ਤਾਂ "ld" ਕਿਸੇ ਪਿਛਲੇ- ਐਲ ਚੋਣ ਦੁਆਰਾ ਨਿਰਧਾਰਤ ਡਾਇਰੈਕਟਰੀਆਂ ਵਿੱਚ ਖੋਜ ਕਰਦਾ ਹੈ. ਮਲਟੀਪਲ- T ਵਿਕਲਪ ਇਕੱਠੇ ਹੁੰਦੇ ਹਨ.

-u ਪ੍ਰਤੀਕ

--undefined = symbol

ਇੱਕ ਪ੍ਰਭਾਸ਼ਿਤ ਚਿੰਨ ਵਜੋਂ ਆਊਟਪੁਟ ਫਾਈਲ ਵਿੱਚ ਦਾਖਲ ਹੋਣ ਲਈ ਫੋਰਸ ਚਿੰਨ੍ਹ. ਅਜਿਹਾ ਕਰ ਕੇ, ਉਦਾਹਰਨ ਲਈ, ਮਿਆਰੀ ਲਾਇਬ੍ਰੇਰੀਆਂ ਤੋਂ ਵਾਧੂ ਮੈਡਿਊਲ ਜੋੜਨ ਦੀ ਪ੍ਰਕਿਰਿਆ ਸ਼ੁਰੂ ਹੋ ਸਕਦੀ ਹੈ. -u ਨੂੰ ਵਾਧੂ ਅਣ-ਪ੍ਰਭਾਸ਼ਿਤ ਚਿੰਨ੍ਹ ਦਰਜ ਕਰਨ ਲਈ ਵੱਖ-ਵੱਖ ਚੋਣ ਆਰਗੂਮੈਂਟਾਂ ਦੇ ਨਾਲ ਦੁਹਰਾਇਆ ਜਾ ਸਕਦਾ ਹੈ. ਇਹ ਚੋਣ "EXTERN" ਲਿੰਕਰ ਸਕ੍ਰਿਪਟ ਕਮਾਂਡ ਦੇ ਬਰਾਬਰ ਹੈ.

-ਯੂਆਰ

C ++ ਪ੍ਰੋਗਰਾਮਾਂ ਤੋਂ ਇਲਾਵਾ ਹੋਰ ਕੋਈ ਚੀਜ਼ ਲਈ, ਇਹ ਚੋਣ -r ਦੇ ਬਰਾਬਰ ਹੈ: ਇਹ ਮੁੜ ਨਿਰਭਰ ਆਊਟਪੁਟ ਉਤਪੰਨ ਕਰਦਾ ਹੈ --- ਅਰਥਾਤ, ਇੱਕ ਆਉਟਪੁਟ ਫਾਇਲ ਜੋ ਬਦਲੇ ਵਿੱਚ ld ਨੂੰ ਇੰਪੁੱਟ ਦੇ ਰੂਪ ਵਿੱਚ ਕੰਮ ਕਰ ਸਕਦੀ ਹੈ. ਜਦੋਂ C ++ ਪਰੋਗਰਾਮਾਂ ਨੂੰ ਜੋੜਿਆ ਜਾਂਦਾ ਹੈ , -ਆਰ , ਕੰਸਟ੍ਰਕਟਰਾਂ ਦੇ ਹਵਾਲਿਆਂ ਨੂੰ ਹੱਲ ਕਰਦਾ ਹੈ , ਜਿਵੇਂ -ਆਰ ਇਹ ਉਹਨਾਂ ਚੀਜ਼ਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ ਕੰਮ ਨਹੀਂ ਕਰਦਾ ਜੋ ਖੁਦ -Ur ਦੇ ਨਾਲ ਜੁੜੇ ਹੋਏ ਸਨ ; ਇਕ ਵਾਰ ਕੰਸਟ੍ਰਕਟਰ ਟੇਬਲ ਦਾ ਨਿਰਮਾਣ ਕੀਤਾ ਗਿਆ ਸੀ, ਇਸ ਨੂੰ ਸ਼ਾਮਿਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ. ਵਰਤੋ- ਸਿਰਫ ਅੰਤਿਮ ਅੰਸ਼ਕ ਸੰਪਰਕ ਲਈ, ਅਤੇ ਦੂਜਿਆਂ ਲਈ -r

--unique [= SECTION ]

ਹਰੇਕ ਇਨਪੁਟ ਸੈਕਸ਼ਨ ਲਈ SECTION ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਇੱਕ ਵੱਖਰਾ ਆਊਟਪੁੱਟ ਭਾਗ ਬਣਾਉਂਦਾ ਹੈ, ਜਾਂ ਜੇ ਹਰ ਅਨਾਥ ਇਨਪੁਟ ਸੈਕਸ਼ਨ ਲਈ ਵਿਕਲਪਿਕ ਵਾਈਲਡਕਾਰਡ SECTION ਆਰਗੂਮੈਂਟ ਗੁੰਮ ਹੈ. ਇੱਕ ਅਨਾਥ ਸੈਕਸ਼ਨ ਇੱਕ ਲਿੰਕਰ ਲਿਪੀ ਵਿੱਚ ਖਾਸ ਤੌਰ ਤੇ ਜ਼ਿਕਰ ਨਹੀਂ ਹੈ. ਤੁਸੀਂ ਇਸ ਚੋਣ ਨੂੰ ਕਮਾਂਡ ਲਾਈਨ ਤੇ ਕਈ ਵਾਰ ਵਰਤ ਸਕਦੇ ਹੋ; ਇਹ ਇਕੋ ਨਾਮ ਦੇ ਇਨਪੁਟ ਸੈਕਸ਼ਨਾਂ ਦੀ ਸਾਂਝੀ ਮਾਈਗ੍ਰੇਜ ਨੂੰ ਰੋਕਦਾ ਹੈ, ਇੱਕ ਲਿੰਕਰ ਸਕਰਿਪਟ ਵਿੱਚ ਓਵਰਰਾਈਡਿੰਗ ਆਊਟਪੁਟ ਸੈਕਸ਼ਨ ਅਸਾਈਨਮੈਂਟ.

-ਵੀ

--ਵਰਜਨ

-ਵੀ

Ld ਲਈ ਵਰਜਨ ਨੰਬਰ ਡਿਸਪਲੇ ਕਰੋ -V ਚੋਣ ਵਿੱਚ ਸਮਰਥਿਤ ਇਮਯੂਲੇਸ਼ਨ ਦੀਆਂ ਸੂਚੀਆਂ ਵੀ ਹਨ.

-x

--discard-all

ਸਾਰੇ ਸਥਾਨਕ ਪ੍ਰਤੀਕਾਂ ਨੂੰ ਮਿਟਾਓ

-X

--ਡਿਸਰਡ-ਲੋਕਲਜ਼

ਸਾਰੇ ਆਰਜ਼ੀ ਸਥਾਨਕ ਚਿੰਨ੍ਹ ਮਿਟਾਓ ਜ਼ਿਆਦਾਤਰ ਟੀਚਿਆਂ ਲਈ, ਇਹ ਉਹ ਸਾਰੇ ਸਥਾਨਕ ਚਿੰਨ੍ਹ ਹਨ ਜਿਹਨਾਂ ਦੇ ਨਾਂ ਐਲ ਨਾਲ ਸ਼ੁਰੂ ਹੁੰਦੇ ਹਨ.

-y ਨਿਸ਼ਾਨ

--trace-symbol = symbol

ਹਰ ਸਬੰਧਿਤ ਫਾਈਲ ਦਾ ਨਾਮ ਛਾਪੋ, ਜਿਸ ਵਿੱਚ ਸੰਕੇਤ ਦਿਸਦਾ ਹੈ. ਇਹ ਚੋਣ ਕਿਸੇ ਵੀ ਸਮੇਂ ਦਿੱਤੀ ਜਾ ਸਕਦੀ ਹੈ. ਬਹੁਤ ਸਾਰੇ ਪ੍ਰਣਾਲੀਆਂ 'ਤੇ ਇੱਕ ਅੰਡਰਸਕੋਰ ਤਿਆਰ ਕਰਨਾ ਜ਼ਰੂਰੀ ਹੈ.

ਇਹ ਚੋਣ ਲਾਭਦਾਇਕ ਹੁੰਦੀ ਹੈ ਜਦੋਂ ਤੁਹਾਡੇ ਕੋਲ ਤੁਹਾਡੀ ਲਿੰਕ ਵਿਚ ਅਣਪਛਾਤੀ ਨਿਸ਼ਾਨ ਹੁੰਦਾ ਹੈ ਪਰ ਪਤਾ ਨਹੀਂ ਕਿ ਸੰਦਰਭ ਕਿੱਥੋਂ ਆ ਰਿਹਾ ਹੈ.

-Y ਮਾਰਗ

ਮੂਲ ਲਾਇਬਰੇਰੀ ਖੋਜ ਮਾਰਗ ਲਈ ਪਾਥ ਜੋੜੋ. ਇਹ ਚੋਣ ਸੋਲਾਰਸ ਅਨੁਕੂਲਤਾ ਲਈ ਮੌਜੂਦ ਹੈ

-z ਕੀਵਰਡ

ਪਛਾਣੇ ਗਏ ਸ਼ਬਦ "ਇਨਸਟਰਫਾਸਟ", "ਇੰਟਰਜ਼", "ਲੋਡਫਿਲਟਰ", "ਨੋਡਫਾਲਟਿਲਬ", "ਨੋਡੇਲੇਟ", "ਨੋਡਲੋਪਨ", "ਨੋਡੌਪ", "ਹੁਣ", "ਮੂਲ", "ਕੰਬਰੇਲਕੋਕ", "ਨੋਕੰਬ੍ਰੌਲੋਕ" ਅਤੇ "ਨੋਕੋਪੀਰੀਅਲਕ" ਹਨ. ". ਦੂਜੇ ਸ਼ਬਦਾਂ ਨੂੰ ਸਲੋਰਸ ਅਨੁਕੂਲਤਾ ਲਈ ਅਣਡਿੱਠਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ. "initfirst" ਕਿਸੇ ਦੂਜੇ ਇਕਾਈ ਤੋਂ ਪਹਿਲਾਂ ਰੰਨਟਾਈਮ ਤੇ ਪਹਿਲਾਂ ਆਬਜੈਕਟ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਨਿਸ਼ਚਿਤ ਕਰਦਾ ਹੈ. "ਇੰਟਰਪਜ਼" ਆਬਜੈਕਟ ਨੂੰ ਸੰਕੇਤ ਕਰਦਾ ਹੈ ਕਿ ਉਸਦੇ ਪ੍ਰਤੀਰੂਪ ਸਾਰਣੀ ਸਾਰੇ ਚਿੰਨ੍ਹ ਤੋਂ ਪਹਿਲਾਂ ਪ੍ਰਕਿਰਿਆ ਕਰਦਾ ਹੈ ਪਰ ਪ੍ਰਾਇਮਰੀ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਹੈ. "loadfltr" ਉਸ ਵਸਤੂ ਨੂੰ ਸੰਕੇਤ ਕਰਦਾ ਹੈ ਜਿਸਦੇ ਫਿਲਟਿਆਂ ਨੂੰ ਰੰਨਟਾਈਮ ਤੇ ਤੁਰੰਤ ਸੰਸਾਧਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ. "ਨੋਡਫਲਾਵਲਬ" ਉਸ ਵਸਤੂ ਨੂੰ ਸੰਕੇਤ ਕਰਦਾ ਹੈ ਜੋ ਇਸ ਆਬਜੈਕਟ ਦੀ ਨਿਰਭਰਤਾ ਦੀ ਖੋਜ ਨੂੰ ਅਣਡਿੱਠ ਕਰ ਦੇਵੇਗੀ ਕੋਈ ਡਿਫਾਲਟ ਲਾਇਬ੍ਰੇਰੀ ਖੋਜ ਮਾਰਗ "ਨੋਡੇਲੇਟ" ਅੰਕ ਹੈ ਕਿ ਇਕਾਈ ਨੂੰ ਰਨਟਾਈਮ ਤੇ ਅਨਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ. "ਨੋਡਲਲੋਪਨ" ਨੂੰ ਉਸ ਵਸਤੂ ਨੂੰ ਨਿਸ਼ਾਨਬੱਧ ਕਰਦਾ ਹੈ ਜੋ "dlopen" ਲਈ ਉਪਲਬਧ ਨਹੀਂ ਹੈ. "ਨੋਡੌਪ" ਅੰਕ ਹੈ ਕਿ ਆਬਜੈਕਟ "dldump" ਦੁਆਰਾ ਡੰਪ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ. "ਹੁਣ" ਆਬਜੈਕਟ ਨੂੰ ਗੈਰ-ਆਲਸੀ ਰੰਨਟਾਈਮ ਬਾਈਂਡਿੰਗ ਨਾਲ ਸੰਕੇਤ ਕਰਦਾ ਹੈ. "ਮੂਲ" ਅੰਕ ਹੈ ਕਿ ਓਬ੍ਰੈਂਡ ਵਿੱਚ $ ORIGIN ਸ਼ਾਮਲ ਹੋ ਸਕਦਾ ਹੈ. "defs" ਨਾ-ਪ੍ਰਭਾਸ਼ਿਤ ਚਿੰਨ੍ਹ ਨੂੰ ਮਨਜ਼ੂਰੀ ਦਿੰਦਾ ਹੈ. "muldefs" ਕਈ ਪਰਿਭਾਸ਼ਾਵਾਂ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ. "ਕੰਬਰੇਲੋਕ" ਬਹੁਤ ਸਾਰੇ ਰੀਲੌਕ ਸੈਕਸ਼ਨਾਂ ਨੂੰ ਜੋੜਦਾ ਹੈ ਅਤੇ ਇਹਨਾਂ ਨੂੰ ਤਰਤੀਬਵਾਰ ਚਿੰਨ੍ਹ ਕੈਚਿੰਗ ਸੰਭਵ ਬਣਾਉਣ ਲਈ ਉਹਨਾਂ ਨੂੰ ਕ੍ਰਮਵਾਰ ਕਰਦਾ ਹੈ.

"nocombreloc" ਬਹੁ-ਸੰਸਾਧਨਾਂ ਨੂੰ ਇਕੱਠਿਆਂ ਕਰਨ ਨੂੰ ਅਯੋਗ ਕਰਦਾ ਹੈ "ਨੋਕੋਪੀਰੀਅਲੋਕ" ਕਾਪੀ ਰੀਲੋਕਸ ਦੇ ਉਤਪਾਦਨ ਨੂੰ ਅਯੋਗ ਕਰਦਾ ਹੈ.

- ( ਪੁਰਾਲੇਖ -)

--start- ਗਰੁੱਪ ਆਰਕਾਈਵ --end-group

ਪੁਰਾਲੇਖ ਪੁਰਾਲੇਖ ਫਾਈਲਾਂ ਦੀ ਇੱਕ ਸੂਚੀ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ. ਉਹ ਕੋਈ ਖਾਸ ਫਾਈਲ ਨਾਮ, ਜਾਂ -l ਵਿਕਲਪ ਹੋ ਸਕਦੇ ਹਨ.

ਖਾਸ ਆਰਕਾਈਵਜ਼ ਨੂੰ ਵਾਰ ਵਾਰ ਖੋਜਿਆ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਤੱਕ ਕੋਈ ਨਵਾਂ ਅਣ-ਪ੍ਰਭਾਸ਼ਿਤ ਹਵਾਲਾ ਬਣਾਇਆ ਨਹੀਂ ਜਾਂਦਾ. ਆਮ ਤੌਰ ਤੇ, ਇਕ ਆਕਾਈਵ ਸਿਰਫ ਇਕ ਵਾਰ ਹੀ ਖੋਜਿਆ ਜਾਂਦਾ ਹੈ ਤਾਂ ਕਿ ਕਮਾਂਡ ਲਾਈਨ ਤੇ ਨਿਸ਼ਚਿਤ ਕੀਤਾ ਜਾ ਸਕੇ. ਜੇ ਆਰਕਾਈਵ ਵਿੱਚ ਇੱਕ ਚਿੰਨ੍ਹ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ ਤਾਂ ਇੱਕ ਅਵਿਸ਼ਵਾਸ਼ਿਤ ਸੰਕੇਤ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ ਜ਼ਰੂਰੀ ਹੁੰਦਾ ਹੈ ਜਿਸਦਾ ਆਬਜੈਕਟ ਆਬਜੈਕਟ ਵਿੱਚ ਜੋ ਬਾਅਦ ਵਿੱਚ ਕਮਾਂਡ ਲਾਈਨ ਤੇ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ, ਲਿੰਕਰ ਉਸ ਸੰਦਰਭ ਨੂੰ ਹੱਲ ਕਰਨ ਦੇ ਯੋਗ ਨਹੀਂ ਹੁੰਦਾ. ਆਰਕਾਈਵਜ਼ ਨੂੰ ਜੋੜ ਕੇ, ਉਹ ਸਾਰੇ ਵਾਰ ਵਾਰ ਖੋਜੇ ਜਾਣ ਤੱਕ ਜਦੋਂ ਤਕ ਸਾਰੇ ਸੰਭਵ ਹਵਾਲਿਆਂ ਦਾ ਨਿਪਟਾਰਾ ਨਹੀਂ ਹੁੰਦਾ.

ਇਸ ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕਰਨ ਨਾਲ ਇੱਕ ਮਹੱਤਵਪੂਰਣ ਕਾਰਗੁਜ਼ਾਰੀ ਲਾਗਤ ਹੁੰਦੀ ਹੈ ਇਹ ਉਦੋਂ ਹੀ ਸਭ ਤੋਂ ਵਧੀਆ ਹੈ ਜਦੋਂ ਦੋ ਜਾਂ ਦੋ ਤੋਂ ਵੱਧ ਆਰਕਾਈਵਜ਼ ਵਿਚਕਾਰ ਅਢੁੱਕਵੀਂ ਗੋਲ ਪਰਿਵਰਤਨਾਂ ਹੋਣ.

--ਪਤਾ - ਅਣਗਿਣਤ-ਇਨਪੁਟ- arch

--no-accept-unknown-input-arch

ਲਿੰਕਰ ਨੂੰ ਇਨਪੁਟ ਫਾਈਲਾਂ ਸਵੀਕਾਰ ਕਰਨ ਲਈ ਦੱਸਦਾ ਹੈ ਜਿਸ ਦੀ ਆਰਕੀਟੈਕਚਰ ਦੀ ਪਛਾਣ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ. ਇਹ ਧਾਰਨਾ ਇਹ ਹੈ ਕਿ ਉਪਭੋਗਤਾ ਜਾਣਦਾ ਹੈ ਕਿ ਉਹ ਕੀ ਕਰ ਰਹੇ ਹਨ ਅਤੇ ਜਾਣਬੁੱਝ ਕੇ ਇਹਨਾਂ ਅਣਜਾਣ ਇੰਪੁੱਟ ਫਾਈਲਾਂ ਵਿੱਚ ਲਿੰਕ ਕਰਨਾ ਚਾਹੁੰਦਾ ਹੈ. ਇਹ ਲਿੰਕਰ ਦਾ ਮੂਲ ਵਿਹਾਰ ਸੀ, ਜੋ 2.14 ਰੀਲਿਜ਼ ਤੋਂ ਪਹਿਲਾਂ ਸੀ ਰੀਲਿਜ਼ 2.14 ਤੋਂ ਡਿਫਾਲਟ ਵਿਹਾਰ ਇਸ ਤਰ੍ਹਾਂ ਇਨਪੁਟ ਫਾਈਲਾਂ ਨੂੰ ਰੱਦ ਕਰਨਾ ਹੈ, ਅਤੇ ਇਸ ਲਈ - ਪੁਰਾਣੇ-ਵਰਤਾਓ ਨੂੰ ਪੁਨਰ ਸਥਾਪਿਤ ਕਰਨ ਲਈ --cept-unknown-input-arch ਚੋਣ ਨੂੰ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ ਹੈ.

-ਸਜ਼ਰਟ ਕੀਵਰਡ

ਇਹ ਚੋਣ SunOS ਅਨੁਕੂਲਤਾ ਲਈ ਅਣਡਿੱਠ ਕੀਤੀ ਜਾਂਦੀ ਹੈ .

-ਬੈਸ਼ਨਿਕ

-dy

-ਕਾੱਲ_ਸ਼ਾਰ

ਡਾਇਨਾਮਿਕ ਲਾਇਬਰੇਰੀਆਂ ਦੇ ਵਿਰੁੱਧ ਲਿੰਕ. ਇਹ ਕੇਵਲ ਪਲੇਟਫਾਰਮ 'ਤੇ ਅਰਥਪੂਰਨ ਹੈ ਜਿਸ ਲਈ ਸ਼ੇਅਰਡ ਲਾਇਬ੍ਰੇਰੀਆਂ ਸਮਰਥਿਤ ਹਨ. ਇਹ ਵਿਕਲਪ ਆਮ ਤੌਰ ਤੇ ਅਜਿਹੇ ਪਲੇਟਫਾਰਮਾਂ ਤੇ ਡਿਫਾਲਟ ਹੁੰਦਾ ਹੈ. ਇਸ ਚੋਣ ਦਾ ਵੱਖ-ਵੱਖ ਰੂਪ ਵੱਖ-ਵੱਖ ਸਿਸਟਮਾਂ ਨਾਲ ਅਨੁਕੂਲਤਾ ਲਈ ਹਨ. ਤੁਸੀਂ ਇਸ ਚੋਣ ਨੂੰ ਕਮਾਂਡ ਲਾਇਨ ਤੇ ਕਈ ਵਾਰ ਵਰਤ ਸਕਦੇ ਹੋ: ਇਹ ਲਾਇਬਰੇਰੀ ਨੂੰ -l ਚੋਣ ਲਈ ਖੋਜਦੀ ਹੈ ਜੋ ਇਸ ਦੀ ਪਾਲਣਾ ਕਰਦੀ ਹੈ.

-ਬਗਰਮ

ਡਾਈਨੈਮਿਕ ਭਾਗ ਵਿੱਚ "DT_FLAGS_1" ਐਂਟਰੀ ਵਿੱਚ "DF_1_GROUP" ਫਲੈਗ ਨੂੰ ਸੈਟ ਕਰੋ. ਇਹ ਰਨਟਾਈਮ ਲਿੰਕਰ ਨੂੰ ਇਸ ਆਬਜੈਕਟ ਵਿਚਲੇ ਦੇਖਣ ਅਤੇ ਸਮੂਹ ਦੇ ਅੰਦਰ ਹੀ ਨਿਰਭਰਤਾ ਨੂੰ ਹੈਂਡਲ ਕਰਨ ਲਈ ਕਾਰਨ ਦਿੰਦਾ ਹੈ. --no-undefined ਸੰਖੇਪ ਹੈ. ਇਹ ਵਿਕਲਪ ਐੱਲ ਐੱਫ ਪਲੇਟਫਾਰਮਾਂ ਤੇ ਹੀ ਅਰਥਪੂਰਨ ਹੈ ਜੋ ਸ਼ੇਅਰਡ ਲਾਇਬ੍ਰੇਰੀਆਂ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ .

-ਬਸਤਿਕ

-dn

-non_shared

- ਸਥਿਰ

ਸ਼ੇਅਰ ਕੀਤੀਆਂ ਲਾਇਬ੍ਰੇਰੀਆਂ ਦੇ ਨਾਲ ਲਿੰਕ ਨਾ ਕਰੋ ਇਹ ਕੇਵਲ ਪਲੇਟਫਾਰਮ 'ਤੇ ਅਰਥਪੂਰਨ ਹੈ ਜਿਸ ਲਈ ਸ਼ੇਅਰਡ ਲਾਇਬ੍ਰੇਰੀਆਂ ਸਮਰਥਿਤ ਹਨ. ਇਸ ਚੋਣ ਦਾ ਵੱਖ-ਵੱਖ ਰੂਪ ਵੱਖ-ਵੱਖ ਸਿਸਟਮਾਂ ਨਾਲ ਅਨੁਕੂਲਤਾ ਲਈ ਹਨ. ਤੁਸੀਂ ਇਸ ਚੋਣ ਨੂੰ ਕਮਾਂਡ ਲਾਇਨ ਤੇ ਕਈ ਵਾਰ ਵਰਤ ਸਕਦੇ ਹੋ: ਇਹ ਲਾਇਬਰੇਰੀ ਨੂੰ -l ਚੋਣ ਲਈ ਖੋਜਦੀ ਹੈ ਜੋ ਇਸ ਦੀ ਪਾਲਣਾ ਕਰਦੀ ਹੈ.

-ਬਿਸਮੋਲਿਕ

ਸਾਂਝੀ ਲਾਇਬ੍ਰੇਰੀ ਬਣਾਉਣਾ, ਸ਼ੇਅਰਡ ਲਾਇਬ੍ਰੇਰੀ ਵਿੱਚ ਪਰਿਭਾਸ਼ਾ ਦੇ ਲਈ ਗਲੋਬਲ ਸੰਕੇਤਾਂ ਦਾ ਹਵਾਲਾ, ਜੇ ਕੋਈ ਹੋਵੇ ਆਮ ਤੌਰ 'ਤੇ ਸ਼ੇਅਰ ਕੀਤੀ ਗਈ ਲਾਇਬ੍ਰੇਰੀ ਵਿਚਲੇ ਪਰਿਭਾਸ਼ਾ ਨੂੰ ਓਵਰਰਾਈਡ ਕਰਨ ਲਈ ਸਾਂਝਾ ਲਾਇਬਰੇਰੀ ਦੇ ਨਾਲ ਇਕ ਪ੍ਰੋਗਰਾਮ ਜੋੜਿਆ ਜਾ ਸਕਦਾ ਹੈ. ਇਹ ਚੋਣ ਸਿਰਫ ELFplatforms ਤੇ ਅਰਥਪੂਰਨ ਹੈ ਜੋ ਸ਼ੇਅਰਡ ਲਾਇਬ੍ਰੇਰੀਆਂ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ.

--ਚੈਕ-ਸੈਕਸ਼ਨ

--no-check-sections

ਲਿੰਕਰ ਨੂੰ ਇਹ ਕਹਿੰਦੇ ਹੋਏ ਵਿਭਾਗੀ ਦੇ ਪੜਾਵਾਂ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਨਹੀਂ ਕਿਹਾ ਗਿਆ ਕਿ ਕੀ ਉਨ੍ਹਾਂ ਨੂੰ ਕੋਈ ਓਵਰਲੈਪ ਮਿਲੇਗੀ ਜਾਂ ਨਹੀਂ. ਆਮ ਤੌਰ ਤੇ ਲਿੰਕਰ ਇਹ ਚੈੱਕ ਕਰੇਗਾ, ਅਤੇ ਜੇ ਇਹ ਕਿਸੇ ਵੀ ਓਵਰਲੈਪ ਨੂੰ ਲੱਭੇ ਤਾਂ ਇਹ ਸਹੀ ਗਲਤੀ ਸੁਨੇਹੇ ਦੇਵੇਗਾ. ਲਿੰਕਰ ਨੂੰ ਪਤਾ ਲਗਦਾ ਹੈ, ਅਤੇ ਓਵਰਲੇਅ ਦੇ ਭਾਗਾਂ ਲਈ ਭੱਤੇ ਕਰਦਾ ਹੈ. ਡਿਫਾਲਟ ਵਤੀਰੇ ਨੂੰ ਕਮਾਂਡ ਲਾਈਨ ਸਵਿਚ --check-sections ਵਰਤ ਕੇ ਮੁੜ ਬਹਾਲ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ.

--cref

ਇੱਕ ਕਰੌਸ ਰੈਫਰੈਂਸ ਟੇਬਲ ਆਉਟਪੁੱਟ. ਜੇਕਰ ਕੋਈ ਲਿੰਕਰ ਮੈਪ ਫਾਈਲ ਬਣਾਈ ਜਾ ਰਹੀ ਹੈ, ਤਾਂ ਕ੍ਰੌਸ ਰੈਫਰੈਂਸ ਟੇਬਲ ਮੈਪ ਫਾਈਲ ਵਿੱਚ ਛਾਪੀ ਜਾਂਦੀ ਹੈ. ਨਹੀਂ ਤਾਂ, ਇਹ ਸਟੈਂਡਰਡ ਆਉਟਪੁੱਟ ਤੇ ਛਾਪਿਆ ਜਾਂਦਾ ਹੈ.

ਟੇਬਲ ਦਾ ਫਾਰਮੈਟ ਇਰਾਦਤਨ ਸਧਾਰਨ ਹੈ, ਤਾਂ ਜੋ ਇਸ ਨੂੰ ਆਸਾਨੀ ਨਾਲ ਇੱਕ ਸਕਰਿਪਟ ਦੁਆਰਾ ਸੰਸਾਧਿਤ ਕੀਤਾ ਜਾ ਸਕੇ ਜੇ ਜਰੂਰੀ ਹੋਵੇ ਚਿੰਨ੍ਹ ਨਾਮ ਰਾਹੀਂ ਕ੍ਰਮਬੱਧ ਕੀਤੇ, ਛਾਪੇ ਜਾਂਦੇ ਹਨ. ਹਰ ਇੱਕ ਨਿਸ਼ਾਨ ਲਈ, ਫਾਇਲ ਨਾਂ ਦੀ ਇੱਕ ਸੂਚੀ ਦਿੱਤੀ ਗਈ ਹੈ. ਜੇਕਰ ਨਿਸ਼ਾਨ ਪ੍ਰਭਾਸ਼ਿਤ ਹੈ, ਤਾਂ ਸੂਚੀਬੱਧ ਪਹਿਲੀ ਫਾਇਲ ਪਰਿਭਾਸ਼ਾ ਦਾ ਸਥਾਨ ਹੈ. ਬਾਕੀ ਦੀਆਂ ਫਾਈਲਾਂ ਵਿੱਚ ਚਿੰਨ੍ਹ ਦਾ ਹਵਾਲਾ ਹੈ

--no-define-common

ਇਹ ਚੋਣ ਪਤੇ ਦੀ ਨਿਯੁਕਤੀ ਨੂੰ ਆਮ ਚਿੰਨ੍ਹ ਨੂੰ ਰੋਕ ਦਿੰਦਾ ਹੈ. ਸਕ੍ਰਿਪਟ ਆਦੇਸ਼ "INHIBIT_COMMON_ALLOCATION" ਦਾ ਇੱਕੋ ਪ੍ਰਭਾਵ ਹੈ.

--no-define-common ਚੋਣ ਆਉਟਪੁੱਟ ਫਾਇਲ ਕਿਸਮ ਦੀ ਚੋਣ ਤੋਂ ਆਮ ਚਿੰਨ੍ਹਾਂ ਨੂੰ ਐਡਰੈੱਸ ਦੇਣ ਦਾ ਫੈਸਲਾ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ; ਨਹੀਂ ਤਾਂ ਇੱਕ ਗ਼ੈਰ-ਮੁੜ ਸਥਾਪਿਤ ਆਊਟਪੁਟ ਟਾਈਪ ਬ੍ਰਾਇਨ ਜੋ ਆਮ ਚਿੰਨ੍ਹ ਨੂੰ ਪਤੇ ਦਿੰਦਾ ਹੈ. --no-define-common ਦੀ ਵਰਤੋ ਸਾਂਝੇ ਚਿੰਨ੍ਹ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ ਜੋ ਸ਼ੇਅਰਡ ਲਾਇਬ੍ਰੇਰੀ ਤੋਂ ਹਵਾਲਾ ਦੇ ਦਿੱਤੇ ਜਾਂਦੇ ਹਨ ਤਾਂ ਜੋ ਸਿਰਫ਼ ਮੁੱਖ ਪ੍ਰੋਗਰਾਮਾਂ ਵਿੱਚ ਨਿਰਧਾਰਤ ਕੀਤਾ ਜਾ ਸਕੇ. ਇਹ ਸਾਂਝੀ ਕੀਤੀ ਡੁਪਲੀਕੇਟ ਸਪੇਸ ਨੂੰ ਸ਼ੇਅਰਡ ਲਾਇਬ੍ਰੇਰੀ ਵਿੱਚ ਖਤਮ ਕਰਦਾ ਹੈ, ਅਤੇ ਰੁਕਣ ਵਾਲੇ ਪ੍ਰਤੀਕ ਰੈਜ਼ੋਲੂਸ਼ਨ ਲਈ ਵਿਸ਼ੇਸ਼ ਖੋਜ ਮਾਰਗਾਂ ਦੇ ਨਾਲ ਬਹੁਤ ਸਾਰੇ ਡਾਇਨੈਮਿਕ ਮੋਡੀਊਲ ਹਨ, ਜਦੋਂ ਵੀ ਗਲਤ ਡੁਪਲੀਕੇਟ ਨੂੰ ਹੱਲ ਕਰਨ ਤੇ ਕੋਈ ਵੀ ਸੰਭਵ ਉਲਝਣ ਰੋਕਦਾ ਹੈ.

--defsym symbol = ਸਮੀਕਰਨ

ਆਉਟਪੁਟ ਫਾਈਲ ਵਿੱਚ ਇੱਕ ਗਲੋਬਲ ਚਿੰਨ੍ਹ ਬਣਾਓ, ਜਿਸ ਵਿੱਚ ਐਕਸਪਸ਼ਨ ਦੁਆਰਾ ਦਿੱਤੇ ਗਏ ਪੂਰਾ ਐਡਰੈੱਸ ਸ਼ਾਮਲ ਹੈ . ਤੁਸੀਂ ਇਸ ਚੋਣ ਨੂੰ ਕਈ ਵਾਰ ਕਮਾਂਡ ਲਾਈਨ ਵਿੱਚ ਕਈ ਚਿੰਨ੍ਹ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨ ਲਈ ਜ਼ਰੂਰੀ ਕਰ ਸਕਦੇ ਹੋ ਇਸ ਸੰਦਰਭ ਵਿੱਚ ਸਮੀਕਰਨ ਲਈ ਇੱਕ ਸੀਮਿਤ ਰੂਪ ਦੀ ਸਹਾਇਤਾ ਹੈ: ਤੁਸੀਂ ਇੱਕ ਹੈਕਸਾਡੈਸੀਮਲ ਲਗਾਤਾਰ ਜਾਂ ਇੱਕ ਮੌਜੂਦਾ ਚਿੰਨ੍ਹ ਦਾ ਨਾਂ ਦੇ ਸਕਦੇ ਹੋ ਜਾਂ ਹੈਕਸਾਡੈਸੀਮਲ ਸਟੈਂੰਟਟ ਜਾਂ ਚਿੰਨ੍ਹ ਜੋੜਨ ਜਾਂ ਘਟਾਉਣ ਲਈ "-" ਅਤੇ "-" ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ. ਜੇ ਤੁਹਾਨੂੰ ਵਧੇਰੇ ਵਿਆਪਕ ਸ਼ਬਦਾਂ ਦੀ ਲੋੜ ਹੈ ਤਾਂ ਇੱਕ ਸਕਰਿਪਟ ਤੋਂ ਲਿੰਕਰ ਕਮਾਂਡ ਭਾਸ਼ਾ ਦੀ ਵਰਤੋਂ ਕਰਨ 'ਤੇ ਵਿਚਾਰ ਕਰੋ. ਨੋਟ: ਨਿਸ਼ਾਨ ਦੇ ਵਿੱਚ ਕੋਈ ਵੀ ਖਾਲੀ ਥਾਂ ਨਹੀਂ ਹੋਣੀ ਚਾਹੀਦੀ, ਬਰਾਬਰ ਦੇ ਚਿੰਨ੍ਹ (`` = ''), ਅਤੇ ਐਕਸਪਰੈਸ਼ਨ .

--demangle [= ਸ਼ੈਲੀ ]

--no-demangle

ਇਹ ਵਿਕਲਪ ਇਹ ਨਿਸ਼ਚਤ ਕਰਦੇ ਹਨ ਕਿ ਕੀ ਗਲਤੀ ਸੁਨੇਹਿਆਂ ਅਤੇ ਹੋਰ ਆਉਟਪੁੱਟ ਵਿੱਚ ਚਿਹਰਾ ਦੇ ਨਾਂ ਨੂੰ ਮਿਟਾਉਣਾ ਹੈ. ਜਦੋਂ ਲਿੰਕਰ ਨੂੰ ਘਟਾਉਣ ਦੀ ਗੱਲ ਆਖੀ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਇਹ ਸੰਕੇਤ ਦੇ ਨਾਵਾਂ ਨੂੰ ਪੜ੍ਹਨ ਯੋਗ ਢੰਗ ਨਾਲ ਪੇਸ਼ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ: ਇਹ ਉਕਾਈ ਜਾਂਦੀ ਹੈ ਕਿ ਉਹ ਆਬਜੈਕਟ ਫਾਇਲ ਫਾਰਮੈਟ ਦੁਆਰਾ ਵਰਤੇ ਜਾਂਦੇ ਹਨ, ਅਤੇ ਉਪਭੋਗਤਾ ਪੜ੍ਹਨ ਯੋਗ ਨਾਮਾਂ ਵਿੱਚ C ++ ਮੇਲਘਰ ਵਾਲੇ ਸਿੰਬਲ ਨਾਂ ਨੂੰ ਬਦਲਦਾ ਹੈ. ਵੱਖ-ਵੱਖ ਕੰਪਾਈਲਰ ਦੇ ਵੱਖ-ਵੱਖ ਮੇਲ-ਜੋਲ ਸਟਾਈਲ ਹਨ. ਤੁਹਾਡੇ ਕੰਪਾਈਲਰ ਲਈ ਢੁਕਵੇਂ ਅਨਘੜਤਾ ਸ਼ੈਲੀ ਦੀ ਚੋਣ ਕਰਨ ਲਈ ਵਿਕਲਪਿਕ ਡਿਗਲਲਿੰਗ ਸਟਾਈਲ ਆਰਗੂਮੈਂਟ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ. ਲਿੰਕਰ ਡਿਫਾਲਟ ਰੂਪ ਵਿੱਚ ਡਿਗਾਲ ਹੋ ਜਾਵੇਗਾ ਜਦ ਤੱਕ ਕਿ ਵਾਤਾਵਰਣ ਵੈਰੀਬਲ COLLECT_NO_DEMANGLE ਸੈਟ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ. ਇਹ ਚੋਣਾਂ ਡਿਫਾਲਟ ਨੂੰ ਓਵਰਰਾਈਡ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ.

--dynamic-linker ਫਾਇਲ

ਡਾਇਨਾਮਿਕ ਲਿੰਕਰ ਦਾ ਨਾਮ ਸੈਟ ਕਰੋ. ਗਤੀਸ਼ੀਲ ਜੁੜੇ ਹੋਏ ELF ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਬਣਾਉਣ ਵੇਲੇ ਇਹ ਸਿਰਫ ਅਰਥਪੂਰਣ ਹੈ. ਮੂਲ ਡਾਇਨਾਮਿਕ ਲਿੰਕਰ ਆਮ ਤੌਰ ਤੇ ਸਹੀ ਹੈ; ਇਸਦੀ ਵਰਤੋਂ ਨਾ ਕਰੋ ਜਦ ਤੱਕ ਤੁਹਾਨੂੰ ਇਹ ਨਹੀਂ ਪਤਾ ਕਿ ਤੁਸੀਂ ਕੀ ਕਰ ਰਹੇ ਹੋ

--ਮੈੱਡਡਾਡ-ਰੀਲੋਕਸ

ਇਹ ਚੋਣ ਸਿਰਫ ਉਦੋਂ ਹੀ ਅਰਥਪੂਰਣ ਹੈ ਜਦੋਂ MIPS ਐਮਬੈਡਡ ਪੀਆਈਸੀ ਕੋਡ ਨੂੰ ਜੋੜਦੇ ਹੋਏ, -ਮੈਂਬੇਡਡ-ਪਿਕ ਔਪਸ਼ਨ ਦੁਆਰਾ GNU ਕੰਪਾਈਲਰ ਅਤੇ ਐਸਬੇਲਰ ਨੂੰ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਹੈ. ਇਹ ਲਿੰਕਰ ਨੂੰ ਇੱਕ ਸਾਰਣੀ ਬਣਾਉਣ ਲਈ ਕਾਰਨ ਬਣਦੀ ਹੈ ਜੋ ਰੰਨਟਾਈਮ ਤੇ ਵਰਤੀ ਜਾ ਸਕਦੀ ਹੈ, ਜੋ ਕਿਸੇ ਵੀ ਡਾਟੇ ਨੂੰ ਸਥਾਪਤ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ, ਜੋ ਸਥਿਰ ਤੌਰ ਤੇ ਪੁਆਇੰਟਰ ਮੁੱਲਾਂ ਲਈ ਸ਼ੁਰੂ ਕੀਤਾ ਗਿਆ ਸੀ. ਵਿਸਥਾਰ ਲਈ ਟੈਸਟਸਾਈਟ / ਲਿਡ-ਐਂਪਿਕ ਵਿੱਚ ਕੋਡ ਦੇਖੋ.

- ਘਾਤਕ ਚੇਤਾਵਨੀਆਂ

ਸਾਰੀਆਂ ਚੇਤਾਵਨੀਆਂ ਨੂੰ ਗ਼ਲਤੀ ਦੇ ਤੌਰ ਤੇ ਸਮਝੋ

--force-exe-suffix

ਯਕੀਨੀ ਬਣਾਉ ਕਿ ਇਕ ਆਉਟਪੁਟ ਫਾਈਲ ਵਿੱਚ ਇੱਕ .exe ਪ੍ਰਿਥੀ ਹੈ.

ਜੇ ਕਿਸੇ ਸਫਲਤਾਪੂਰਵਕ ਪੂਰੀ ਤਰ੍ਹਾਂ ਜੁੜਿਆ ਆਉਟਪੁੱਟ ਫਾਈਲ ਵਿੱਚ ".exe" ਜਾਂ " .dll " ਪਿਛੇਤਰ ਨਹੀਂ ਹੈ, ਤਾਂ ਇਹ ਚੋਣ ਲਿੰਕਰ ਨੂੰ ".exe" ਪਿਛੇਤਰ ਨਾਲ ਆਉਟਪੁਟ ਫਾਇਲ ਨੂੰ ਉਸੇ ਨਾਮ ਨਾਲ ਨਕਲ ਕਰਨ ਲਈ ਮਜਬੂਰ ਕਰਦੀ ਹੈ. ਇਹ ਚੋਣ ਉਪਯੋਗੀ ਹੈ ਜਦੋਂ ਇੱਕ ਮਾਈਕਰੋਸਾਫਟ ਵਿੰਡੋ ਹੋਸਟ ਉੱਤੇ ਅਣ-ਸੋਧਿਆ ਯੂਨਿਕਸ ਮੇਕਫਾਈਲਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ, ਕਿਉਂਕਿ ਵਿੰਡੋਜ਼ ਦੇ ਕੁਝ ਵਰਜ਼ਨ ਕੋਈ ਚਿੱਤਰ ਨਹੀਂ ਚਲਾਉਂਦੇ ਜਦੋਂ ਤੱਕ ਇਹ ".exe" ਪਿਛੇਤਰ ਵਿੱਚ ਨਹੀਂ ਹੁੰਦਾ.

--no-gc-sections

--gc-sections

ਨਾ-ਵਰਤੀ ਇਨਪੁਟ ਸੈਕਸ਼ਨਾਂ ਦੀ ਕੂੜਾ ਸੰਗ੍ਰਹਿ ਨੂੰ ਸਮਰੱਥ ਬਣਾਓ. ਇਹ ਉਨ੍ਹਾਂ ਟੀਚਿਆਂ 'ਤੇ ਨਜ਼ਰਅੰਦਾਜ਼ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਜੋ ਇਸ ਵਿਕਲਪ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੇ. ਇਹ ਚੋਣ -r ਨਾਲ ਅਨੁਕੂਲ ਨਹੀਂ ਹੈ, ਨਾ ਹੀ ਇਸ ਨੂੰ ਡਾਇਨੇਮਿਕ ਲਿੰਕ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ. ਡਿਫਾਲਟ ਵਿਵਹਾਰ (ਇਸ ਕੂੜੇ ਦਾ ਸੰਗ੍ਰਹਿ ਨਾ ਕਰਨ ਦੇ) ਨੂੰ ਕਮਾਂਡ ਲਾਇਨ ਤੇ --no-gc-sections ਨਿਸ਼ਚਿਤ ਕਰਕੇ ਰੀਸਟੋਰ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ.

--ਮਦਦ ਕਰੋ

ਮਿਆਰੀ ਆਉਟਪੁੱਟ ਤੇ ਬਾਹਰ ਜਾਣ ਤੇ ਕਮਾਂਡ-ਲਾਈਨ ਚੋਣਾਂ ਦਾ ਸੰਖੇਪ ਛਾਪੋ.

--target-help

ਸਟੈਂਡਰਡ ਆਉਟਪੁੱਟ ਤੇ ਬੰਦ ਹੋਣ ਤੇ ਸਾਰੇ ਨਿਸ਼ਾਨਾ ਖਾਸ ਚੋਣਾਂ ਦਾ ਸੰਖੇਪ ਛਾਪੋ.

-Map mapfile

ਫਾਇਲ ਮੈਪਫਾਇਲ ਨੂੰ ਇੱਕ ਲਿੰਕ ਮੈਪ ਪ੍ਰਿੰਟ ਕਰੋ. ਉਪਰੋਕਤ- M ਚੋਣ ਦਾ ਵੇਰਵਾ ਵੇਖੋ.

--ਕੋ-ਕੋ-ਮੈਮੋਰੀ

ld ਆਮ ਤੌਰ ਤੇ ਮੈਮੋਰੀ ਵਰਤੋਂ ਤੇ ਸਪੀਡ ਲਈ ਅਨੁਕੂਲ ਹੈ ਮੈਮਰੀ ਵਿੱਚ ਇਨਪੁਟ ਫਾਈਲਾਂ ਦੇ ਚਿੰਨ੍ਹ ਟੇਬਲ ਕੈਚ ਕਰਕੇ. ਇਹ ਚੋਣ ld ਨੂੰ ਦੱਸਦੀ ਹੈ ਕਿ ਮੈਮੋਰੀ ਵਰਤੋਂ ਲਈ ਲੋੜ ਅਨੁਸਾਰ ਇੰਪਾਇਟਲ ਹੋਣ ਕਰਕੇ, ਸਿੰਬਲ ਟੇਬਲ ਨੂੰ ਲੋੜ ਅਨੁਸਾਰ ਮੁੜ ਪੜਨਾ ਇਹ ਲੋੜੀਦਾ ਹੋ ਸਕਦਾ ਹੈ ਜੇ ld ਇੱਕ ਵੱਡੇ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਨੂੰ ਜੋੜਦੇ ਹੋਏ ਮੈਮੋਰੀ ਸਪੇਸ ਤੋਂ ਬਾਹਰ ਚਲਦਾ ਹੈ.

--no-undefined

-z ਡੀਫੈਕਸ

ਆਮ ਤੌਰ ਤੇ ਜਦੋਂ ਗੈਰ-ਚਿੰਨ੍ਹਿਤ ਸ਼ੇਅਰਡ ਲਾਇਬਰੇਰੀ ਬਣਾਈ ਜਾਂਦੀ ਹੈ, ਅਣਚੁਣੇ ਚਿੰਨ੍ਹਾਂ ਦੀ ਆਗਿਆ ਹੁੰਦੀ ਹੈ ਅਤੇ ਰੰਨਟਾਈਮ ਲੋਡਰ ਦੁਆਰਾ ਹੱਲ ਕਰਨ ਲਈ ਛੱਡ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ. ਇਹ ਵਿਕਲਪ ਅਜਿਹੇ ਅਵਿਸ਼ਵਾਸ ਚਿੰਨ੍ਹ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਦਿੰਦੇ ਹਨ.

--allow-multi-definition

-z muldefs

ਆਮ ਤੌਰ ਤੇ ਜਦੋਂ ਇੱਕ ਨਿਸ਼ਾਨ ਕਈ ਵਾਰ ਪਰਿਭਾਸ਼ਿਤ ਹੁੰਦਾ ਹੈ, ਲਿੰਕਰ ਇੱਕ ਘਾਤਕ ਗਲਤੀ ਦੀ ਰਿਪੋਰਟ ਦੇਵੇਗਾ. ਇਹ ਵਿਕਲਪ ਕਈ ਪਰਿਭਾਸ਼ਾਵਾਂ ਦੀ ਆਗਿਆ ਦਿੰਦੇ ਹਨ ਅਤੇ ਪਹਿਲੀ ਪਰਿਭਾਸ਼ਾ ਵਰਤੀ ਜਾਏਗੀ.

--allow-shlib-undefined

ਸ਼ੇਅਰ ਕੀਤੀਆਂ ਆਬਜੈਕਟਾਂ ਵਿਚ ਪ੍ਰਭਾਸ਼ਿਤ ਚਿੰਨ੍ਹ ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ ਭਾਵੇਂ ਕਿ --no-undefined ਸੈਟ ਕੀਤਾ ਹੋਵੇ. ਇਸ ਦਾ ਨਤੀਜਾ ਹੋਵੇਗਾ ਕਿ ਨਿਯਮਿਤ ਆਬਜੈਕਟਾਂ ਵਿਚ ਪ੍ਰਭਾਸ਼ਿਤ ਨਿਸ਼ਾਨ ਅਜੇ ਵੀ ਇਕ ਗਲਤੀ ਨੂੰ ਤਰਜੀਹ ਦੇਣਗੇ, ਪਰ ਸਾਂਝਾ ਆਬਜੈਕਟ ਵਿਚ ਪ੍ਰਭਾਸ਼ਿਤ ਨਿਸ਼ਾਨ ਅਣਡਿੱਠੇ ਕੀਤੇ ਜਾਣਗੇ. No_undefined ਦੇ ਲਾਗੂ ਕਰਨ ਨਾਲ ਅਨੁਮਾਨ ਹੋ ਜਾਂਦਾ ਹੈ ਕਿ ਰਨਟਾਈਮ ਲਿੰਕਰ ਅਣਪ੍ਚਣਿਤ ਚਿੰਨ੍ਹ ਤੇ ਗੜਬੜ ਕਰੇਗਾ. ਹਾਲਾਂਕਿ ਘੱਟੋ-ਘੱਟ ਇੱਕ ਸਿਸਟਮ (ਬੀਓਓਐਸ) ਹੈ ਜਿੱਥੇ ਸਾਂਝਾ ਲਾਇਬ੍ਰੇਰੀਆਂ ਵਿੱਚ ਪ੍ਰਭਾਸ਼ਿਤ ਚਿੰਨ੍ਹ ਆਮ ਹੁੰਦੇ ਹਨ, ਜਦੋਂ ਕਿ ਕਰਨਲ ਉਨ੍ਹਾਂ ਨੂੰ ਲੋਡ ਕਰਨ ਸਮੇਂ ਲੋਡ ਕਰਦਾ ਹੈ ਤਾਂ ਕਿ ਉਹ ਮੌਜੂਦਾ ਆਰਕੀਟੈਕਚਰ ਲਈ ਕਿਹੜਾ ਕਾਰਜ ਸਭ ਤੋਂ ਢੁਕਵਾਂ ਹੋਵੇ. IE ਗਤੀਸ਼ੀਲ ਇੱਕ ਢੁਕਵੀਂ memset ਫੰਕਸ਼ਨ ਦੀ ਚੋਣ ਕਰੋ. ਜ਼ਾਹਰਾ ਤੌਰ 'ਤੇ ਇਹ ਵੀ ਆਮ ਹੈ ਕਿ ਐਚਪੀਪੀਏ ਨੇ ਸਾਂਝੀਆਂ ਲਾਇਬ੍ਰੇਰੀਆਂ ਨੂੰ ਅਣਪਛਿਆ ਚਿੰਨ੍ਹ ਸਾਂਝੇ ਕੀਤੇ ਹਨ.

--no-undefined-version

ਆਮ ਤੌਰ 'ਤੇ ਜਦੋਂ ਇੱਕ ਚਿੰਨ੍ਹ ਦੇ ਅਣਪਛਾਤੇ ਸੰਸਕਰਣ ਹਨ, ਤਾਂ ਲਿੰਕਰ ਇਸਨੂੰ ਅਣਡਿੱਠਾ ਕਰ ਦੇਵੇਗਾ. ਇਹ ਚੋਣ ਨਾ-ਪ੍ਰਭਾਸ਼ਿਤ ਵਰਜਨ ਵਾਲੇ ਪ੍ਰਤੀਕਾਂ ਦੀ ਉਲੰਘਣਾ ਕਰਦਾ ਹੈ ਅਤੇ ਇੱਕ ਘਾਤਕ ਗਲਤੀ ਇਸ ਦੀ ਬਜਾਏ ਜਾਰੀ ਕੀਤੀ ਜਾਵੇਗੀ.

--no-warn-mismatch

ਆਮ ਤੌਰ ਤੇ ld ਇੱਕ ਗਲਤੀ ਦੇਵੇਗਾ ਜੇ ਤੁਸੀਂ ਇੰਪੁੱਟ ਫਾਇਲਾਂ ਨੂੰ ਜੋੜਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹੋ ਜੋ ਕਿ ਕਿਸੇ ਕਾਰਨ ਕਰਕੇ ਮੇਲ ਨਹੀਂ ਖਾਂਦੀਆਂ, ਸ਼ਾਇਦ ਇਸ ਕਰਕੇ ਕਿ ਉਹਨਾਂ ਨੂੰ ਵੱਖ ਵੱਖ ਪ੍ਰੋਸੈਸਰਾਂ ਲਈ ਜਾਂ ਵੱਖ ਵੱਖ ਅੰਤ੍ਰਿਮਤਾਵਾਂ ਲਈ ਕੰਪਾਇਲ ਕੀਤਾ ਗਿਆ ਹੈ. ਇਹ ਚੋਣ ld ਨੂੰ ਦੱਸਦੀ ਹੈ ਕਿ ਇਸ ਨੂੰ ਅਜਿਹੇ ਸੰਭਵ ਗਲਤੀਆਂ ਨੂੰ ਚੁੱਪ ਢੰਗ ਨਾਲ ਇਜਾਜ਼ਤ ਦੇਣਾ ਚਾਹੀਦਾ ਹੈ. ਇਸ ਚੋਣ ਦਾ ਧਿਆਨ ਸਿਰਫ ਦੇਖਭਾਲ ਦੇ ਨਾਲ ਹੀ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ, ਜਦੋਂ ਤੁਸੀਂ ਕੁਝ ਖਾਸ ਕਾਰਵਾਈ ਕੀਤੀ ਹੈ ਜੋ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਲਿੰਕਰ ਦੀਆਂ ਗਲਤੀਆਂ ਅਣਉਚਿਤ ਹੋਣ.

--no-whole-archive

ਅਗਲੀ ਅਕਾਇਵ ਫਾਈਲਾਂ ਲਈ --whole-archive ਵਿਕਲਪ ਦੇ ਪ੍ਰਭਾਵ ਨੂੰ ਬੰਦ ਕਰ ਦਿਓ.

--noinhibit-exec

ਐਕਜ਼ੀਕਯੂਟੇਬਲ ਆਉਟਪੁੱਟ ਫਾਇਲ ਨੂੰ ਤਦ ਵੀ ਰੱਖੋ ਜਦੋਂ ਵੀ ਇਹ ਵਰਤੋਂ ਯੋਗ ਹੈ. ਆਮ ਤੌਰ ਤੇ, ਲਿੰਕਰ ਇਕ ਆਉਟਪੁੱਟ ਫਾਇਲ ਨਹੀਂ ਦੇਵੇਗਾ ਜੇ ਇਸ ਨੂੰ ਲਿੰਕ ਪ੍ਰਕਿਰਿਆ ਦੇ ਦੌਰਾਨ ਗਲਤੀਆਂ ਦਾ ਸਾਹਮਣਾ ਕਰਨਾ ਪੈਂਦਾ ਹੈ; ਇਹ ਕਿਸੇ ਆਉਟਪੁੱਟ ਫਾਇਲ ਨੂੰ ਲਿਖਣ ਤੋਂ ਬਗੈਰ ਬਾਹਰ ਆਉਂਦਾ ਹੈ ਜਦੋਂ ਇਹ ਕੋਈ ਵੀ ਤਰੁਟੀ ਪੈਦਾ ਕਰਦਾ ਹੈ.

-ਨੌਸਟਡਿਲਬ

ਸਿਰਫ ਕਮਾਂਡ ਲਾਇਨ ਤੇ ਨਿਰਦਿਸ਼ਟ ਲਾਇਬਰੇਰੀ ਡਾਇਰੈਕਟਰੀਆਂ ਦੀ ਖੋਜ ਕਰੋ. ਲਿੰਕਰ ਸਕਰਿਪਟਾਂ (ਕਮਾਂਡ ਲਾਈਨ ਤੇ ਨਿਰਦਿਸ਼ਟ ਲਿੰਕਰ ਸਕ੍ਰਿਪਾਂ ਸਮੇਤ) ਵਿੱਚ ਦਰਸਾਈਆਂ ਲਾਇਬ੍ਰੇਰੀ ਡਾਇਰੈਕਟਰੀਆਂ ਨੂੰ ਅਣਡਿੱਠ ਕੀਤਾ ਜਾਂਦਾ ਹੈ.

--ਫਾਰਮੈਟ ਆਉਟਪੁੱਟ-ਫਾਰਮੈਟ

ld ਨੂੰ ਇਕ ਤੋਂ ਵੱਧ ਕਿਸਮ ਦੇ ਇਕਾਈ ਫਾਈਲ ਦਾ ਸਮਰਥਨ ਕਰਨ ਲਈ ਸੰਰਚਿਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ. ਜੇ ਤੁਹਾਡਾ ld ਇਸ ਤਰਾਂ ਸੰਰਚਿਤ ਕੀਤਾ ਗਿਆ ਹੈ, ਤਾਂ ਤੁਸੀਂ --oformat ਚੋਣ ਨੂੰ ਆਊਟਪੁੱਟ ਆਬਜੈਕਟ ਫਾਇਲ ਲਈ ਬਾਇਨਰੀ ਫਾਰਮੈਟ ਨੂੰ ਦਰਸਾਉਣ ਲਈ ਵਰਤ ਸਕਦੇ ਹੋ. ਜਦੋਂ ਵੀ ld ਬਦਲਵਾਂ ਆਬਜੈਕਟ ਫਾਰਮੈਟਾਂ ਨੂੰ ਸਹਿਯੋਗ ਦੇਣ ਲਈ ਸੰਰਚਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਤੁਹਾਨੂੰ ਆਮ ਕਰਕੇ ਇਹ ਦਰਸਾਉਣ ਦੀ ਲੋੜ ਨਹੀਂ ਹੁੰਦੀ, ਕਿਉਂਕਿ LD ਨੂੰ ਡਿਫਾਲਟ ਆਉਟਪੁੱਟ ਫਾਰਮੈਟ ਵਜੋਂ ਤਿਆਰ ਕਰਨ ਲਈ ਸੰਰਚਿਤ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ, ਹਰ ਮਸ਼ੀਨ ਤੇ ਸਭ ਤੋਂ ਆਮ ਫਾਰਮੇਟ. ਆਉਟਪੁੱਟ-ਬਣਤਰ ਇੱਕ ਪਾਠ ਸਤਰ ਹੈ, BFD ਲਾਇਬਰੇਰੀਆਂ ਦੁਆਰਾ ਸਮਰਥਿਤ ਵਿਸ਼ੇਸ਼ ਫਾਰਮੈਟ ਦਾ ਨਾਮ. (ਤੁਸੀਂ objdump -i ਨਾਲ ਉਪਲੱਬਧ ਬਾਇਨਰੀ ਫਾਰਮੈਟਾਂ ਨੂੰ ਸੂਚਿਤ ਕਰ ਸਕਦੇ ਹੋ.) ਸਕ੍ਰਿਪਟ ਕਮਾਂਡ "OUTPUT_FORMAT" ਵੀ ਆਊਟਪੁਟ ਫਾਰਮੈਟ ਨੂੰ ਦਰਸਾ ਸਕਦੀ ਹੈ, ਪਰ ਇਹ ਚੋਣ ਇਸ ਨੂੰ ਓਵਰਰਾਈਡ ਕਰਦੀ ਹੈ

-qmagic

ਇਹ ਚੋਣ ਲੀਨਕਸ ਅਨੁਕੂਲਤਾ ਲਈ ਅਣਡਿੱਠਾ ਕੀਤਾ ਗਿਆ ਹੈ.

-ਕਾਈ

ਇਹ ਚੋਣ SVR4 ਅਨੁਕੂਲਤਾ ਲਈ ਅਣਡਿੱਠਾ ਕੀਤਾ ਗਿਆ ਹੈ.

--ਸ਼ਾਂਤ ਹੋ ਜਾਓ

ਮਸ਼ੀਨ ਤੇ ਨਿਰਭਰ ਪ੍ਰਭਾਵਾਂ ਦੇ ਨਾਲ ਇੱਕ ਵਿਕਲਪ. ਇਹ ਚੋਣ ਸਿਰਫ ਕੁਝ ਨਿਸ਼ਾਨੇ ਤੇ ਸਮਰਥਿਤ ਹੈ.

ਕੁਝ ਪਲੇਟਫਾਰਮਾਂ ਤੇ, --relax ਚੋਣ ਗਲੋਬਲ ਓਪਟੀਮਾਈਜ਼ਿੰਗ ਕਰਦੀ ਹੈ ਜੋ ਮੁਮਕਿਨ ਹੋ ਜਾਂਦੇ ਹਨ ਜਦੋਂ ਲਿੰਕਰ ਪ੍ਰੋਗਰਾਮ ਵਿੱਚ ਸੰਬੋਧਨ ਕਰਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਅਰਾਮਦੇਹ ਮੋਡ ਢੰਗ ਅਤੇ ਆਉਟਪੁੱਟ ਆਬਜੈਕਟ ਫਾਇਲ ਵਿੱਚ ਨਵੀਂ ਹਦਾਇਤਾਂ ਨੂੰ ਸਿੰਥੈਟ ਕਰਨ.

ਕੁਝ ਪਲੇਟਫਾਰਮਾਂ ਤੇ ਇਹ ਲਿੰਕ ਟਾਈਮ ਆਲਮੀ ਅਨੁਕੂਲਤਾ ਨਤੀਜੇ ਵਜੋਂ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਅਸੰਭਵ ਦੀ ਸੰਕੇਤਕ ਡੀਬੱਗਿੰਗ ਬਣਾ ਸਕਦੀ ਹੈ. ਇਹ ਪ੍ਰੋਸੈਸਰ ਦੇ Matsushita MN10200and MN10300 ਫੈਮਲੀ ਲਈ ਕੇਸ ਵਜੋਂ ਜਾਣਿਆ ਜਾਂਦਾ ਹੈ.

ਉਹ ਪਲੇਟਫਾਰਮ ਜਿੱਥੇ ਇਸ ਨੂੰ ਸਹਿਯੋਗ ਨਹੀਂ ਹੈ, --relax ਸਵੀਕਾਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਪਰ ਅਣਡਿੱਠਾ ਕੀਤਾ ਗਿਆ.

--ਰੇਟੇਨ-ਸਿੰਬਲਜ਼-ਫਾਇਲ ਫਾਈਲ ਦਾ ਨਾਮ

ਸਭ ਫਾਈਲਾਂ ਨੂੰ ਛੱਡ ਕੇ, ਸਿਰਫ਼ ਫਾਈਲ ਫਾਇਲਨਾਮ ਵਿਚ ਸੂਚੀਬੱਧ ਚਿੰਨ੍ਹ ਹੀ ਬਣਾਏ ਰੱਖੋ . ਫਾਈਲ ਦਾ ਨਾਮ ਬਸ ਇਕ ਫਲੈਟ ਫਾਈਲ ਹੈ, ਜਿਸ ਵਿਚ ਇਕ ਪ੍ਰਤੀ ਲਾਈਨ ਨਾਮ ਪ੍ਰਤੀ ਲਾਈਨ ਹੈ. ਇਹ ਚੋਣ ਖਾਸ ਤੌਰ ਤੇ ਵਾਤਾਵਰਣਾਂ ਵਿੱਚ ਲਾਭਦਾਇਕ ਹੈ (ਜਿਵੇਂ ਕਿ VxWorks) ਜਿੱਥੇ ਇੱਕ ਵਿਸ਼ਾਲ ਸੰਸਾਰਕ ਸੰਕੇਤ ਸਾਰਣੀ ਹੌਲੀ ਹੌਲੀ ਸੰਮਿਲਿਤ ਹੁੰਦੀ ਹੈ, ਰਨ-ਟਾਈਮ ਮੈਮੋਰੀ ਦੀ ਰੱਖਿਆ ਲਈ.

--ਰੇਟੇਨ-ਸਿੰਬਲਜ਼-ਫਾਇਲ ਅਣ-ਪ੍ਰਭਾਸ਼ਿਤ ਪ੍ਰਤੀਕਾਂ, ਜਾਂ ਮੁੜ ਸਥਾਪਨਾਂ ਲਈ ਲੋੜੀਂਦੇ ਚਿੰਨ੍ਹਾਂ ਨੂੰ ਨਹੀਂ ਛੱਡਦੀ .

ਤੁਸੀਂ ਸਿਰਫ ਕਮਾਂਡ ਲਾਈਨ ਵਿੱਚ --retain-symbols-file ਨਿਸ਼ਚਿਤ ਕਰ ਸਕਦੇ ਹੋ ਇਹ ਓਵਰਰਾਈਡ ਕਰਦਾ ਹੈ -s ਅਤੇ -S

-ਰਪਾਥ ਡਾਇਰ

ਰਨਟਾਇਮ ਲਾਇਬ੍ਰੇਰੀ ਖੋਜ ਮਾਰਗ ਵਿੱਚ ਡਾਇਰੈਕਟਰੀ ਜੋੜੋ. ਸ਼ੇਅਰਡ ਔਬਜੈਕਟਸ ਦੇ ਨਾਲ ELFexrectable ਨੂੰ ਜੋੜਨ ਵੇਲੇ ਇਹ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਸਾਰੇ -rpath ਆਰਗੂਮਿੰਟ concatenated ਅਤੇ ਰੰਨਟਾਈਮ linker ਨੂੰ ਪਾਸ ਕਰ ਰਹੇ ਹਨ, ਜੋ ਕਿ ਰੰਨਟਾਈਮ ਤੇ ਸ਼ੇਅਰ ਆਬਜੈਕਟ ਲੱਭਣ ਲਈ ਉਹ ਵਰਤਦਾ ਹੈ -ਪੈਥ ਵਿਕਲਪ ਨੂੰ ਉਦੋਂ ਵੀ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਸਾਂਝਾ ਆਬਜੈਕਟਸ ਦੀ ਖੋਜ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਜੋ ਸ਼ੇਅਰਡ ਆਬਜੈਕਟਾਂ ਦੁਆਰਾ ਸਪਸ਼ਟ ਤੌਰ ਤੇ ਲਿੰਕ ਵਿਚ ਸ਼ਾਮਲ ਹੁੰਦੀਆਂ ਹਨ; -rpath-link ਚੋਣ ਦਾ ਵੇਰਵਾ ਵੇਖੋ. ਜੇ ਇੱਕ ELF ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਜੋੜਨ ਵੇਲੇ -rpath ਨਹੀਂ ਵਰਤਿਆ ਜਾਂਦਾ, ਤਾਂ ਵਾਤਾਵਰਣ ਵੈਰੀਏਬਲ "LD_RUN_PATH" ਦੀ ਸਮਗਰੀ ਵਰਤੀ ਜਾਏਗੀ ਜੇ ਇਹ ਪ੍ਰਭਾਸ਼ਿਤ ਹੈ

-rpath ਚੋਣ SunOS ਤੇ ਵੀ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ. ਮੂਲ ਰੂਪ ਵਿੱਚ, SunOS ਤੇ, ਲਿੰਕਰ ਸਾਰੇ- ਐਲ ਵਿਕਲਪਾਂ ਵਿੱਚੋਂ ਇੱਕ ਰੰਨਟਾਈਮ ਖੋਜ ਪੈਚ ਨੂੰ ਬਣਾਏਗਾ ਜੋ ਇਸ ਨੂੰ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ. ਜੇ ਇੱਕ -rpath ਚੋਣ ਵਰਤੀ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਰੰਨਟਾਈਮ ਖੋਜ ਮਾਰਗ ਖਾਸ ਤੌਰ ਤੇ -rpath ਚੋਣਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਬਣਦੀ ਹੈ , -L ਚੋਣਾਂ ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰ. ਇਹ gcc ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ ਲਾਭਦਾਇਕ ਹੋ ਸਕਦਾ ਹੈ, ਜੋ ਕਿ ਕਈ-L ਚੋਣਾਂ ਜੋੜਦਾ ਹੈ ਜੋ onNFS ਮਾਊਂਟ ਫਾਇਲਸਿਸਟਮ ਹੋ ਸਕਦਾ ਹੈ.

ਹੋਰ ਐੱਲ ਐੱਫ ਲਿੰਕਰਾਂ ਨਾਲ ਅਨੁਕੂਲਤਾ ਲਈ, ਜੇ -R ਚੋਣ ਨੂੰ ਇੱਕ ਫਾਈਲ ਨਾਂ ਦੀ ਬਜਾਏ ਇੱਕ ਡਾਇਰੈਕਟਰੀ ਨਾਮ ਦੁਆਰਾ ਪਾਲਣਾ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਇਸ ਨੂੰ -rpath ਵਿਕਲਪ ਮੰਨਿਆ ਜਾਂਦਾ ਹੈ.

-rpath- ਲਿੰਕ DIR

ELF ਜਾਂ SunOS ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ, ਇੱਕ ਸਾਂਝਾ ਲਾਇਬ੍ਰੇਰੀ ਨੂੰ ਦੂਜੀ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ. ਇਹ ਉਦੋਂ ਵਾਪਰਦਾ ਹੈ ਜਦੋਂ ਇੱਕ "ld-shared" ਲਿੰਕ ਵਿੱਚ ਸ਼ੇਅਰਡ ਲਾਇਬ੍ਰੇਰੀ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ ਜਿਵੇਂ ਕਿ ਇਨਪੁਟ ਫਾਈਲਾਂ ਵਿੱਚੋਂ ਇੱਕ.

ਜਦੋਂ ਲਿੰਕਰ ਅਜਿਹੇ ਨਿਰਭਰਤਾ ਦਾ ਸਾਹਮਣਾ ਕਰਦਾ ਹੈ ਜਦੋਂ ਇੱਕ ਗੈਰ-ਸਾਂਝਾ, ਗੈਰ-ਸਥਿਰ ਲਿੰਕ ਕਰ ਰਿਹਾ ਹੈ, ਇਹ ਆਪਣੇ ਆਪ ਹੀ ਲੋੜੀਂਦੀ ਸ਼ੇਅਰ ਕੀਤੀ ਲਾਇਬ੍ਰੇਰੀ ਨੂੰ ਲੱਭਣ ਅਤੇ ਇਸ ਨੂੰ ਲਿੰਕ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੇਗਾ, ਜੇ ਇਹ ਸਪੱਸ਼ਟ ਰੂਪ ਵਿੱਚ ਸ਼ਾਮਲ ਨਹੀਂ ਹੈ. ਅਜਿਹੇ ਹਾਲਾਤਾਂ ਵਿੱਚ, -rpath-link ਚੋਣ ਇਸਤੇਮਾਲ ਕਰਨ ਲਈ ਡਾਇਰੈਕਟਰੀਆਂ ਦਾ ਪਹਿਲਾਂ ਸੈਟ ਦਰਸਾਉਂਦਾ ਹੈ. -rpath-link ਚੋਣ ਡਾਇਰੈਕਟਰੀ ਨਾਂ ਦੀ ਲੜੀ ਨਿਰਧਾਰਤ ਕਰ ਸਕਦੀ ਹੈ ਜਾਂ ਤਾਂ ਕਾਮਿਆਂ ਦੁਆਰਾ ਵੱਖ ਕੀਤੀਆਂ ਨਾਵਾਂ ਦੀ ਸੂਚੀ ਦੇ ਕੇ ਜਾਂ ਕਈ ਵਾਰ ਪੇਸ਼ ਕਰਕੇ.

ਇਹ ਵਿਕਲਪ ਸਾਵਧਾਨੀ ਨਾਲ ਵਰਤਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ ਕਿਉਂਕਿ ਇਹ ਖੋਜ ਮਾਰਗ ਨੂੰ ਓਵਰਰਾਈਡ ਕਰਦਾ ਹੈ ਜੋ ਸਾਂਝਾ ਲਾਇਬਰੇਰੀ ਵਿੱਚ ਸਖ਼ਤ ਕੰਪਾਇਲ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ. ਅਜਿਹੇ ਮਾਮਲੇ ਵਿੱਚ ਰਨਟਾਈਮ ਨਾਲ ਸੰਬੰਧਤ ਕਰਨ ਵਾਲੇ ਦੇ ਬਿਨਾਂ ਅਣਜਾਣੇ ਇੱਕ ਵੱਖਰੇ ਖੋਜ ਮਾਰਗ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਸੰਭਵ ਹੈ.

ਲਿੰਕਰ ਲੋੜੀਦੇ ਸ਼ੇਅਰ ਲਾਇਬਰੇਰੀਆਂ ਨੂੰ ਲੱਭਣ ਲਈ ਹੇਠਾਂ ਦਿੱਤੇ ਖੋਜ ਮਾਰਗ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ.

1.

-rpath-link ਚੋਣਾਂ ਦੁਆਰਾ ਨਿਰਧਾਰਤ ਕੀਤੀਆਂ ਕੋਈ ਵੀ ਡਾਇਰੈਕਟਰੀਆਂ.

2.

-rpath ਚੋਣਾਂ ਦੁਆਰਾ ਨਿਰਧਾਰਤ ਕੀਤੀਆਂ ਕੋਈ ਵੀ ਡਾਇਰੈਕਟਰੀਆਂ. -rpath ਅਤੇ -ppath-link ਵਿੱਚ ਅੰਤਰ ਹੈ -rpath ਚੋਣਾਂ ਦੁਆਰਾ ਨਿਰਦਿਸ਼ਟ ਡਾਇਰੈਕਟਰੀਆਂ ਨੂੰ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਵਿੱਚ ਸ਼ਾਮਿਲ ਕੀਤਾ ਗਿਆ ਹੈ ਅਤੇ ਰੰਨਟਾਈਮ ਤੇ ਵਰਤਿਆ ਗਿਆ ਹੈ, ਜਦੋਂ ਕਿ -rpath-link ਚੋਣ ਸਿਰਫ ਲਿੰਕ ਸਮੇਂ ਤੇ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਹੈ. ਇਹ ਕੇਵਲ ਮੂਲ ਲਿੰਕਰ ਲਈ ਹੈ

3.

ਇੱਕ ELF ਸਿਸਟਮ ਤੇ, ਜੇ -rpath ਅਤੇ "rpath-link" ਚੋਣਾਂ ਨਹੀਂ ਵਰਤੀਆਂ ਗਈਆਂ ਸਨ, ਤਾਂ "LD_RUN_PATH" ਵਾਤਾਵਰਨ ਵੇਰੀਏਬਲ ਦੇ ਸੰਖੇਪਾਂ ਨੂੰ ਲੱਭੋ. ਇਹ ਕੇਵਲ ਮੂਲ ਲਿੰਕਰ ਲਈ ਹੈ

4.

SunOS ਤੇ , ਜੇ -rpath ਚੋਣ ਵਰਤੀ ਨਹੀਂ ਸੀ, ਤਾਂ -L ਚੋਣ ਵਰਤ ਕੇ ਦੱਸੀਆਂ ਗਈਆਂ ਡਾਇਰੈਕਟਰੀਆਂ ਦੀ ਖੋਜ ਕਰੋ.

5.

ਨੇਟਿਵ ਲਿੰਕਰ ਲਈ, ਵਾਤਾਵਰਨ ਵੇਰੀਏਬਲ "LD_LIBRARY_PATH" ਦੀਆਂ ਸਮੱਗਰੀਆਂ.

6.

ਨੇਟਿਵ ਐੱਲ ਐੱਫ਼ ਲਿੰਕਰ ਲਈ, ਸਾਂਝੀ ਲਾਇਬ੍ਰੇਰੀ ਦੇ "DT_RUNPATH" ਜਾਂ "DT_RPATH" ਵਿੱਚ ਡਾਇਰੈਕਟਰੀਆਂ ਉਸ ਦੁਆਰਾ ਲੋੜੀਂਦੀਆਂ ਸ਼ੇਅਰਡ ਲਾਇਬ੍ਰੇਰੀਆਂ ਦੀ ਖੋਜ ਲਈਆਂ ਗਈਆਂ ਹਨ. "DT_RPATH" ਇੰਦਰਾਜ਼ਾਂ ਨੂੰ ਅਣਡਿੱਠਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਜੇ "DT_RUNPATH" ਐਂਟਰੀਆਂ ਮੌਜੂਦ ਹੁੰਦੀਆਂ ਹਨ.

7.

ਮੂਲ ਡਾਇਰੈਕਟਰੀਆਂ, ਆਮ ਤੌਰ ਤੇ / lib ਅਤੇ / usr / lib .

8.

ਇੱਕ ELF ਸਿਸਟਮ ਤੇ ਇੱਕ ਨੇਟਿਵ ਲਿੰਕਰ ਲਈ, ਜੇ ਫਾਇਲ /etc/ld.so.conf ਮੌਜੂਦ ਹੈ, ਤਾਂ ਉਸ ਫਾਇਲ ਵਿੱਚ ਲੱਭੀਆਂ ਡਾਇਰੈਕਟਰੀਆਂ ਦੀ ਸੂਚੀ ਹੈ.

ਜੇ ਲੋੜੀਂਦੀ ਸ਼ੇਅਰ ਕੀਤੀ ਗਈ ਲਾਇਬਰੇਰੀ ਨਹੀਂ ਲੱਭੀ, ਤਾਂ ਲਿੰਕਰ ਇੱਕ ਚਿਤਾਵਨੀ ਜਾਰੀ ਕਰੇਗਾ ਅਤੇ ਲਿੰਕ ਦੇ ਨਾਲ ਜਾਰੀ ਰੱਖੇਗਾ.

-ਸ਼ੇਅਰਡ

-ਬਸ਼ਰਣਯੋਗ

ਸਾਂਝੀ ਲਾਇਬ੍ਰੇਰੀ ਬਣਾਓ. ਇਹ ਵਰਤਮਾਨ ਵਿੱਚ ਸਿਰਫ ELF, XCOFF ਅਤੇ SunOS ਪਲੇਟਫਾਰਮਾਂ ਤੇ ਸਮਰਥਿਤ ਹੈ. SunOS ਤੇ, ਲਿੰਕਰ ਆਟੋਮੈਟਿਕਲੀ ਸਾਂਝਾ ਲਾਇਬਰੇਰੀ ਬਣਾਉਂਦਾ ਹੈ ਜੇ -e ਚੋਣ ਵਰਤੀ ਨਹੀਂ ਜਾਂਦੀ ਅਤੇ ਲਿੰਕ ਵਿੱਚ ਅਣਪਛਿਆ ਨਿਸ਼ਾਨ ਹਨ.

--sort-common

ਇਹ ਚੋਣ ld ਨੂੰ ਆਮ ਚਿੰਨ੍ਹ ਨੂੰ ਆਕਾਰ ਦੁਆਰਾ ਕ੍ਰਮਬੱਧ ਕਰਨ ਲਈ ਦੱਸਦਾ ਹੈ ਜਦੋਂ ਇਹ ਉਹਨਾਂ ਨੂੰ ਉਚਿਤ ਆਉਟਪੁੱਟ ਭਾਗਾਂ ਵਿੱਚ ਰੱਖਦਾ ਹੈ. ਪਹਿਲਾਂ ਸਭ ਨੂੰ ਇਕ ਬਾਇਟ ਚਿੰਨ੍ਹ ਆਉ, ਫਿਰ ਸਾਰੇ ਦੋ ਬਾਈਟ, ਫਿਰ ਚਾਰੇ ਚਾਰ ਬਾਈਟ ਅਤੇ ਫਿਰ ਸਭ ਕੁਝ. ਇਹ ਅਲਾਈਨਮੈਂਟ ਸੀਮਾਵਾਂ ਕਾਰਨ ਪ੍ਰਤੀਕਾਂ ਦੇ ਵਿੱਚ ਫਰਕ ਨੂੰ ਰੋਕਣਾ ਹੈ.

--split-by-file [ ਆਕਾਰ ]

--split-by-reloc ਵਾਂਗ ਹੀ, ਜਦੋਂ ਆਕਾਰ ਪਹੁੰਚਦਾ ਹੈ ਤਾਂ ਹਰੇਕ ਇੰਪੁੱਟ ਫਾਇਲ ਲਈ ਨਵਾਂ ਆਉਟਪੁੱਟ ਭਾਗ ਬਣਾਉਂਦਾ ਹੈ. ਅਕਾਰ 1 ਦੇ ਅਕਾਰ ਦੇ ਡਿਫਾਲਟ ਜੇ ਨਾ ਦਿੱਤਾ ਗਿਆ ਹੈ

--split-by-reloc [ ਗਿਣਤੀ ]

ਆਉਟਪੁੱਟ ਫਾਇਲ ਵਿੱਚ ਅਤਿਰਿਕਤ ਭਾਗਾਂ ਦੀ ਰਚਨਾ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ ਤਾਂ ਕਿ ਫਾਈਲ ਵਿੱਚ ਕੋਈ ਵੀ ਸਿੰਗਲ ਆਉਟਪੁਟ ਸੈਕਸ਼ਨ ਨਾਜ਼ੁਕ ਗਿਣਤੀ ਤੋਂ ਜ਼ਿਆਦਾ ਨਾ ਹੋਵੇ. ਇਹ ਲਾਭਦਾਇਕ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਸੀਓਐਫਐਫ ਔਬਜੈਕਟ ਫਾਇਲ ਫਾਰਮੇਟ ਦੇ ਨਾਲ ਕੁਝ ਰੀਅਲ ਟਾਈਮ ਕਰਨਲਾਂ ਨੂੰ ਡਾਊਨਲੋਡ ਕਰਨ ਲਈ ਭਾਰੀ ਅਸਲੋਬਲ ਫਾਇਲਾਂ ਬਣਾਉਂਦੇ ਹਨ; ਕਿਉਂਕਿ ਕੋਫਫੈਂਨਟ ਇੱਕ ਸੈਕਸ਼ਨ ਵਿੱਚ 65535 ਤੋਂ ਵਧੇਰੇ ਸਥਾਨਾਂ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ. ਨੋਟ ਕਰੋ ਕਿ ਇਹ ਆਬਜੈਕਟ ਫਾਇਲ ਫਾਰਮੈਟਾਂ ਨਾਲ ਕੰਮ ਕਰਨ ਵਿੱਚ ਅਸਫਲ ਹੋ ਜਾਵੇਗਾ ਜੋ ਮਨਚਾਹੀ ਭਾਗਾਂ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੇ. ਲਿੰਕਰ ਵੰਡਣ ਲਈ ਵਿਅਕਤੀਗਤ ਇਨਪੁਟ ਸੈਕਸ਼ਨਾਂ ਨੂੰ ਵੰਡਦਾ ਨਹੀਂ ਹੈ, ਇਸ ਲਈ ਜੇ ਇੱਕ ਸਿੰਗਲ ਇਨਪੁਟ ਸੈਕਸ਼ਨ ਵਿੱਚ ਕਾਉਂਟ ਰੀਸਟੋਕੇਸ਼ਨਜ਼ ਤੋਂ ਵੱਧ ਹੈ ਤਾਂ ਇੱਕ ਆਊਟਪੁਟ ਸੈਕਸ਼ਨ ਵਿੱਚ ਬਹੁਤ ਸਾਰੇ ਰੀਲੇਕਸ਼ਨਸ ਸ਼ਾਮਲ ਹੋਣਗੇ. 32768 ਦੇ ਮੁੱਲ ਨੂੰ ਡਿਫਾਲਟ ਗਿਣੋ

--stats

ਲਿੰਕਰ ਦੇ ਕਿਰਿਆ ਬਾਰੇ ਕੰਪੈਟ ਅਤੇ ਡਿਸਪਲੇਅ ਅੰਕੜੇ, ਜਿਵੇਂ ਕਿ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਟਾਈਮ ਅਤੇ ਮੈਮੋਰੀ ਵਰਤੋਂ.

--traditional- ਫਾਰਮੈਟ

ਕੁਝ ਨਿਸ਼ਾਨੇ ਲਈ, ld ਦਾ ਆਊਟਪੁਟ ਕੁਝ ਮੌਜੂਦਾ ਲਿੰਕਰ ਦੇ ਆਊਟਪੁਟ ਤੋਂ ਕੁਝ ਢੰਗਾਂ ਵਿੱਚ ਵੱਖਰਾ ਹੁੰਦਾ ਹੈ. ਇਸ ਸਵਿੱਚ ਨੂੰ ld ਨੂੰ ਰਵਾਇਤੀ ਫੌਰਮੈਟ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਬਜਾਏ ਵਰਤਣਾ ਚਾਹੀਦਾ ਹੈ

ਉਦਾਹਰਨ ਲਈ, SunOS ਤੇ, ld ਸੰਕੇਤ ਸਤਰ ਟੇਬਲ ਵਿੱਚ ਡੁਪਲੀਕੇਟ ਐਂਟਰੀਆਂ ਨੂੰ ਜੋੜਦਾ ਹੈ. ਇਹ ਪੂਰੀ ਡੀਬੱਗਿੰਗ ਜਾਣਕਾਰੀ ਦੇ ਆਉਟਪੁੱਟ ਫਾਈਲ ਦਾ 30 ਪ੍ਰਤੀਸ਼ਤ ਤੋਂ ਘੱਟ ਕਰ ਸਕਦਾ ਹੈ. ਬਦਕਿਸਮਤੀ ਨਾਲ, SunOS "dbx" ਪ੍ਰੋਗਰਾਮ ਪਰਿਣਾਮੀ ਪ੍ਰੋਗ੍ਰਾਮ ਨੂੰ ਨਹੀਂ ਪੜ੍ਹ ਸਕਦਾ ("gdb" ਵਿੱਚ ਕੋਈ ਸਮੱਸਿਆ ਨਹੀਂ ਹੈ). --traditional-format ਸਵਿੱਚ ld ਨੂੰ ਡੁਪਲੀਕੇਟ ਐਂਟਰੀਆਂ ਨੂੰ ਜੋੜਨ ਲਈ ਨਹੀਂ ਦੱਸਦਾ ਹੈ.

--section-start sectionname = org

Org ਦੁਆਰਾ ਦਿੱਤੇ ਗਏ ਪੂਰੇ ਪਤੇ ਤੇ ਆਊਟਪੁੱਟ ਫਾਈਲ ਵਿੱਚ ਇੱਕ ਸੈਕਸ਼ਨ ਦਾ ਪਤਾ ਲਗਾਓ ਤੁਸੀਂ ਇਸ ਚੋਣ ਨੂੰ ਕਮਾਂਡ ਲਾਈਨ ਵਿਚਲੇ ਕਈ ਭਾਗਾਂ ਨੂੰ ਲੱਭਣ ਲਈ ਜਿੰਨੇ ਵੀ ਲੋੜੀਂਦੇ ਵਰਤ ਸਕਦੇ ਹੋ. org ਇੱਕ ਹੀ ਹੈਕਸਾਡੈਸੀਮਲ ਪੂਰਨ ਅੰਕ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ; ਹੋਰ ਲਿੰਕਰਾਂ ਨਾਲ ਅਨੁਕੂਲਤਾ ਲਈ, ਤੁਸੀਂ ਮੁਢਲੇ 0x ਨੂੰ ਆਮ ਤੌਰ ਤੇ ਹੈਕਸਾਡੈਸੀਮਲ ਮੁੱਲ ਨਾਲ ਜੁੜੇ ਹੋਏ ਛੱਡ ਸਕਦੇ ਹੋ. ਨੋਟ: ਸੈਕਸ਼ਨ- ਨਾਂ ਦੇ ਵਿਚਕਾਰ ਕੋਈ ਵੀ ਖਾਲੀ ਥਾਂ ਨਹੀਂ ਹੋਣੀ ਚਾਹੀਦੀ, ਬਰਾਬਰ ਦੇ ਨਿਸ਼ਾਨ (`` = ''), ਅਤੇ org .

-Tbss org

-ਟਟਾਟਾ ਔਰਗ

-ਟੈਕਸਟ ਔਰਗ

--- ਲਈ ਸ਼ੁਰੂਆਤੀ ਸਿਰਨਾਵੇਂ ਦੇ ਤੌਰ ਤੇ org ਦੀ ਵਰਤੋਂ ਕਰੋ --- "ਬੱਸ", "ਡੇਟਾ", ਜਾਂ ਆਉਟਪੁੱਟ ਫਾਇਲ ਦਾ "ਪਾਠ" ਖੰਡ. org ਇੱਕ ਹੀ ਹੈਕਸਾਡੈਸੀਮਲ ਪੂਰਨ ਅੰਕ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ; ਹੋਰ ਲਿੰਕਰਾਂ ਨਾਲ ਅਨੁਕੂਲਤਾ ਲਈ, ਤੁਸੀਂ ਮੁਢਲੇ 0x ਨੂੰ ਆਮ ਤੌਰ ਤੇ ਹੈਕਸਾਡੈਸੀਮਲ ਮੁੱਲ ਨਾਲ ਜੁੜੇ ਹੋਏ ਛੱਡ ਸਕਦੇ ਹੋ.

- dll-verbose

--verbose

Ld ਲਈ ਵਰਜਨ ਨੰਬਰ ਡਿਸਪਲੇ ਕਰੋ ਅਤੇ ਲਿੰਕਰ ਇਮੂਲੇਸ਼ਨ ਸਮਰਥਿਤ ਕਰੋ. ਡਿਸਪਲੇ ਕਰੋ ਕਿ ਕਿਹੜਾ ਇਨਪੁਟ ਫਾਈਲਾਂ ਅਤੇ ਖੋਲ੍ਹੀਆਂ ਨਹੀਂ ਜਾ ਸਕਦੀਆਂ. ਲਿੰਕਰ ਦੁਆਰਾ ਵਰਤੀ ਜਾਣ ਵਾਲੀ ਲਿੰਕਰ ਸਕ੍ਰਿਪਟ ਦਿਖਾਓ

--version-script = version-scriptfile

ਲਿੰਕਰ ਨੂੰ ਇੱਕ ਸੰਸਕਰਣ ਸਕਰਿਪਟ ਦਾ ਨਾਮ ਨਿਸ਼ਚਿਤ ਕਰੋ. ਇਹ ਆਮ ਤੌਰ ਤੇ ਸ਼ੇਅਰਡ ਲਾਇਬਰੇਰੀਆਂ ਬਣਾਉਣ ਸਮੇਂ ਵਰਤੇ ਜਾਂਦੇ ਹਨ ਤਾਂ ਕਿ ਲਾਇਬਰੇਰੀ ਨੂੰ ਬਣਾਇਆ ਜਾ ਰਿਹਾ ਹੈ. ਇਹ ਵਿਕਲਪ ਐੱਲ ਐੱਫ ਪਲੇਟਫਾਰਮਾਂ ਤੇ ਹੀ ਅਰਥਪੂਰਨ ਹੈ ਜੋ ਸ਼ੇਅਰਡ ਲਾਇਬ੍ਰੇਰੀਆਂ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ.

--warn-common

ਚੇਤਾਵਨੀ ਜਦੋਂ ਇੱਕ ਆਮ ਚਿੰਨ੍ਹ ਨੂੰ ਇੱਕ ਹੋਰ ਆਮ ਚਿੰਨ੍ਹ ਜਾਂ ਇੱਕ ਸੰਕੇਤ ਪਰਿਭਾਸ਼ਾ ਨਾਲ ਮਿਲਾਇਆ ਜਾਂਦਾ ਹੈ. ਯੂਨਿਕਸ ਲਿੰਕ ਕਰਨ ਵਾਲਿਆਂ ਨੂੰ ਇਸ ਕੁੱਝ ਗਰਮ ਅਭਿਆਸ ਦੀ ਆਗਿਆ ਦਿੱਤੀ ਗਈ ਹੈ, ਪਰ ਕੁਝ ਹੋਰ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮਾਂ ਦੇ ਲਿੰਕ ਨਹੀਂ ਕਰਦੇ ਹਨ. ਇਹ ਚੋਣ ਤੁਹਾਨੂੰ ਵਿਸ਼ਵ ਸੰਕੇਤਾਂ ਨੂੰ ਜੋੜਨ ਤੋਂ ਸੰਭਾਵੀ ਸਮੱਸਿਆਵਾਂ ਲੱਭਣ ਲਈ ਸਹਾਇਕ ਹੈ. ਬਦਕਿਸਮਤੀ ਨਾਲ, ਕੁਝ ਸੀ ਲਾਇਬਰੇਰੀਆਂ ਇਸ ਅਭਿਆਸ ਦੀ ਵਰਤੋਂ ਕਰਦੀਆਂ ਹਨ, ਇਸ ਲਈ ਤੁਸੀਂ ਲਾਇਬ੍ਰੇਰੀਆਂ ਅਤੇ ਪ੍ਰੋਗਰਾਮਾਂ ਵਿੱਚ ਸੰਕੇਤਾਂ ਬਾਰੇ ਕੁਝ ਚੇਤਾਵਨੀਆਂ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੇ ਹੋ.

ਗਲੋਬਲ ਪ੍ਰਤੀਕਾਂ ਦੇ ਤਿੰਨ ਰੂਪ ਹਨ, ਜੋ ਕਿ C ਉਦਾਹਰਣਾਂ ਦੁਆਰਾ ਦਰਸਾਈਆਂ ਗਈਆਂ ਹਨ:

int i = 1;

ਇੱਕ ਪਰਿਭਾਸ਼ਾ, ਜੋ ਆਉਟਪੁਟ ਫਾਈਲ ਦੇ ਸ਼ੁਰੂਆਤੀ ਡੇਟਾ ਸੈਕਸ਼ਨ ਵਿੱਚ ਜਾਂਦੀ ਹੈ.

extern int i;

ਇੱਕ ਨਾ-ਪ੍ਰਭਾਸ਼ਿਤ ਸੰਦਰਭ, ਜੋ ਕਿ ਸਪੇਸ ਦਾ ਨਿਰਧਾਰਨ ਨਹੀਂ ਕਰਦਾ. ਕਿਤੇ ਵੀ ਪਰਿਭਾਸ਼ਾ ਜਾਂ ਵੇਰੀਏਬਲ ਲਈ ਇਕ ਆਮ ਚਿੰਨ੍ਹ ਜ਼ਰੂਰ ਹੋਣੇ ਚਾਹੀਦੇ ਹਨ.

int i;

ਇੱਕ ਆਮ ਚਿੰਨ੍ਹ ਜੇ ਇੱਕ ਵੇਰੀਏਬਲ ਲਈ ਸਿਰਫ (ਇੱਕ ਜਾਂ ਵੱਧ) ਆਮ ਚਿੰਨ੍ਹ ਹਨ, ਤਾਂ ਇਹ ਆਉਟਪੁਟ ਫਾਈਲ ਦੇ ਨਾ-ਸ਼ੁਰੂ ਕੀਤੇ ਡੇਟਾ ਖੇਤਰ ਵਿੱਚ ਜਾਂਦਾ ਹੈ. ਲਿੰਕਰ ਇੱਕੋ ਹੀ ਵੇਲਿਏਬਲ ਦੇ ਲਈ ਇੱਕ ਸਿੰਗਲ ਚਿੰਨ੍ਹ ਵਿੱਚ ਮਲਟੀਪਲ ਆਮ ਚਿੰਨ੍ਹ ਵਿੱਚ ਮਿਲਾਨ ਕਰਦਾ ਹੈ. ਜੇ ਇਹ ਵੱਖ ਵੱਖ ਅਕਾਰ ਦੇ ਹਨ, ਤਾਂ ਇਹ ਸਭ ਤੋਂ ਵੱਡਾ ਆਕਾਰ ਲੈਂਦਾ ਹੈ. ਲਿੰਕਰ ਇੱਕ ਆਮ ਚਿੰਨ੍ਹ ਘੋਸ਼ਣਾ ਵਿੱਚ ਬਦਲਦਾ ਹੈ, ਜੇਕਰ ਉਸੇ ਵੇਰੀਏਬਲ ਦੀ ਪਰਿਭਾਸ਼ਾ ਹੁੰਦੀ ਹੈ.

--warn-common ਚੋਣ ਪੰਜ ਤਰ੍ਹਾਂ ਦੀਆਂ ਚੇਤਾਵਨੀਆਂ ਪੈਦਾ ਕਰ ਸਕਦੀ ਹੈ. ਹਰੇਕ ਚੇਤਾਵਨੀ ਵਿੱਚ ਲਾਈਨਾਂ ਦੀ ਇੱਕ ਜੋੜੀ ਹੁੰਦੀ ਹੈ: ਪਹਿਲਾ ਸਿਰਫ ਚਿੰਨ੍ਹ ਦਾ ਵਰਨਨ ਹੈ ਜੋ ਕਿ ਹੁਣੇ ਆਉਂਦਾ ਹੈ, ਅਤੇ ਦੂਜਾ ਉਸ ਨਾਂ ਨਾਲ ਆਏ ਪਿਛਲੇ ਚਿੰਨ੍ਹ ਬਾਰੇ ਦੱਸਦਾ ਹੈ. ਦੋ ਜਾਂ ਦੋ ਚਿੰਨ੍ਹ ਦਾ ਇੱਕ ਆਮ ਚਿੰਨ੍ਹ ਇਕ ਆਮ ਚਿੰਨ੍ਹ ਹੋਵੇਗਾ.

1.

ਇੱਕ ਸੰਕੇਤ ਵਿੱਚ ਇੱਕ ਆਮ ਚਿੰਨ੍ਹ ਨੂੰ ਮੋੜਨਾ, ਕਿਉਂਕਿ ਸੰਕੇਤ ਲਈ ਪਹਿਲਾਂ ਹੀ ਇੱਕ ਪਰਿਭਾਸ਼ਾ ਹੈ

(
): ਚੇਤਾਵਨੀ: ` 'ਪਰਿਭਾਸ਼ਾ ਦੁਆਰਾ ਲਿਖੀ ਗਈ ਲਿਖਤ ਦੀ ਆਮ (
): ਚੇਤਾਵਨੀ: ਇੱਥੇ ਪ੍ਰਭਾਸ਼ਿਤ

2.

ਇੱਕ ਸੰਕੇਤ ਵਿੱਚ ਇੱਕ ਆਮ ਚਿੰਨ੍ਹ ਨੂੰ ਮੋੜਨਾ, ਕਿਉਂਕਿ ਸੰਕੇਤ ਲਈ ਬਾਅਦ ਵਿੱਚ ਇੱਕ ਪਰਿਭਾਸ਼ਾ ਮਿਲਦੀ ਹੈ. ਇਹ ਪਿਛਲੇ ਕੇਸ ਵਾਂਗ ਹੀ ਹੈ, ਸਿਵਾਏ ਸਿਨਾਇਕ ਨੂੰ ਕਿਸੇ ਹੋਰ ਤਰਤੀਬ ਵਿੱਚ.

(
): ਚੇਤਾਵਨੀ: ` 'ਓਵਰਰਾਈਡਿੰਗ ਸਧਾਰਨ (
) ਦੀ ਪਰਿਭਾਸ਼ਾ: ਚੇਤਾਵਨੀ: ਆਮ ਇੱਥੇ ਹੈ

3.

ਪਿਛਲੇ ਇੱਕੋ ਆਕਾਰ ਦੇ ਆਮ ਚਿੰਨ ਨਾਲ ਇਕ ਆਮ ਚਿੰਨ੍ਹ ਨੂੰ ਮਿਲਾਨ ਕਰਨਾ.

(
): ਚੇਤਾਵਨੀ: ` ' (
) ਦੀ ਮਲਟੀਪਲ ਆਮ: ਚੇਤਾਵਨੀ: ਪਿਛਲੇ ਆਮ ਇੱਥੇ ਹੈ

4.

ਪਿਛਲੇ ਆਮ ਸੰਕੇਤ ਦੇ ਨਾਲ ਇੱਕ ਆਮ ਚਿੰਨ੍ਹ ਨੂੰ ਮਿਲਾਨ ਕਰਨਾ.

(
): ਚੇਤਾਵਨੀ: ਵੱਡੇ ਆਮ (
) ਦੁਆਰਾ ਲਿਖੀ ਹੋਈ ` 'ਦੇ ਆਮ: ਚੇਤਾਵਨੀ: ਇੱਥੇ ਵੱਡਾ ਆਮ ਹੈ

5.

ਪਿਛਲੇ ਛੋਟੇ ਆਮ ਚਿੰਨ੍ਹ ਦੇ ਨਾਲ ਇੱਕ ਆਮ ਚਿੰਨ੍ਹ ਨੂੰ ਮਿਲਾਨ ਕਰਨਾ. ਇਹ ਪਿਛਲੇ ਕੇਸ ਵਾਂਗ ਹੀ ਹੈ, ਸਿਵਾਏ ਸਿਨਾਇਕ ਨੂੰ ਕਿਸੇ ਹੋਰ ਤਰਤੀਬ ਵਿੱਚ.

(
): ਚੇਤਾਵਨੀ: ` 'ਦੀ ਆਮ ਵਰਤੋਂ ਛੋਟੇ ਆਮ (
): ਚੇਤਾਵਨੀ: ਛੋਟਾ ਜਿਹਾ ਆਮ ਇੱਥੇ ਹੈ

--ਵਾਓਨ ਕੰਸਟਰਟਰ

ਸਾਵਧਾਨ ਕਰੋ ਜੇ ਕੋਈ ਵੀ ਗਲੋਬਲ ਕੰਸਟ੍ਰੱਕਟਰ ਵਰਤੇ ਗਏ ਹਨ. ਇਹ ਸਿਰਫ ਕੁਝ ਆਬਜੈਕਟ ਫਾਇਲ ਫਾਰਮਾਂ ਲਈ ਲਾਭਦਾਇਕ ਹੈ. ਸੀ ਐੱਫ ਐੱਫ ਜਾਂ ਐੱਲ ਐੱਫ਼ ਵਰਗੇ ਫਾਰਮੈਟਾਂ ਲਈ, ਲਿੰਕਰ ਗਲੋਬਲ ਕੰਸਟ੍ਰੈਕਟਰਾਂ ਦੀ ਵਰਤੋਂ ਦਾ ਪਤਾ ਲਗਾ ਨਹੀਂ ਸਕਦਾ.

--warn-multi-gp

ਸਾਵਧਾਨ ਕਰੋ ਕਿ ਆਉਟਪੁੱਟ ਫਾਇਲ ਵਿੱਚ ਕਈ ਗਲੋਬਲ ਪੁਆਇੰਟਰ ਮੁੱਲਾਂ ਦੀ ਲੋੜ ਹੈ . ਇਹ ਕੁਝ ਪ੍ਰੋਸੈਸਰਾਂ ਲਈ ਸਿਰਫ ਅਰਥਪੂਰਨ ਹੈ, ਜਿਵੇਂ ਅਲਫ਼ਾ. ਵਿਸ਼ੇਸ਼ ਤੌਰ ਤੇ, ਕੁਝ ਪ੍ਰੋਸੈਸਰਸ ਇੱਕ ਵਿਸ਼ੇਸ਼ ਸੈਕਸ਼ਨ ਵਿੱਚ ਵੱਡੇ ਮੁੱਲਵਾਨ ਸਥਿਰ ਪਾਉਂਦੇ ਹਨ. ਇੱਕ ਖਾਸ ਰਜਿਸਟਰ (ਵਿਸ਼ਵ ਸੰਕੇਤਕ) ਇਸ ਭਾਗ ਦੇ ਮੱਧ ਵਿੱਚ ਦਰਸਾਉਂਦਾ ਹੈ, ਤਾਂ ਜੋ ਸਥਿਰ ਅੰਕਾਂ ਨੂੰ ਅਧਾਰ ਰਜਿਸਟਰ ਕਰਨ ਵਾਲੇ ਅਨੁਸਾਰੀ ਐਡਰੈਸਿੰਗ ਮੋਡ ਰਾਹੀਂ ਵਧੀਆ ਢੰਗ ਨਾਲ ਲੋਡ ਕੀਤਾ ਜਾ ਸਕੇ. ਕਿਉਂਕਿ ਬੇਸ ਰਜਿਸਟਰ ਅਨੁਸਾਰੀ ਮੋਡ ਵਿਚ ਆਫਸੈੱਟ ਠੀਕ ਹੋ ਗਿਆ ਹੈ ਅਤੇ ਮੁਕਾਬਲਤਨ ਬਹੁਤ ਘੱਟ (ਜਿਵੇਂ, 16 ਬਿੱਟ), ਇਸ ਨਾਲ ਲਗਾਤਾਰ ਪੂਲ ਦਾ ਵੱਧ ਤੋਂ ਵੱਧ ਸਾਈਜ਼ ਸੀਮਿਤ ਹੁੰਦਾ ਹੈ. ਇਸ ਤਰ੍ਹਾਂ ਵੱਡੀਆਂ ਪ੍ਰੋਗਰਾਮਾਂ ਵਿਚ, ਸਭ ਸੰਭਵ ਸੰਜਮਾਂ ਨੂੰ ਸੰਬੋਧਤ ਕਰਨ ਦੇ ਯੋਗ ਹੋਣ ਲਈ ਅਕਸਰ ਕਈ ਗਲੋਬਲ ਪੁਆਇੰਟਰ ਮੁੱਲਾਂ ਨੂੰ ਵਰਤਣ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ. ਇਹ ਵਿਕਲਪ ਜਦੋਂ ਵੀ ਇਹ ਕੇਸ ਵਾਪਰਦਾ ਹੈ ਉਦੋਂ ਇਹ ਚੇਤਾਵਨੀ ਜਾਰੀ ਹੁੰਦੀ ਹੈ.

--ਵਾਰਕ- ਇਕ ਵਾਰ

ਸਿਰਫ ਇੱਕ ਵਾਰ ਹਰ ਇੱਕ ਪ੍ਰਭਾਸ਼ਿਤ ਪ੍ਰਤੀਕ ਲਈ ਇੱਕ ਵਾਰ ਚੇਤਾਵਨੀ ਦਿਓ, ਨਾ ਕਿ ਇੱਕ ਮਾਧਿਅਮ ਪ੍ਰਤੀ ਵਾਰ, ਜੋ ਇਸ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ.

--warn- ਭਾਗ- align

ਚੇਤਾਵਨੀ ਜੇਕਰ ਅਲਾਈਨਮੈਂਟ ਦੇ ਨਤੀਜੇ ਵਜੋਂ ਆਊਟਪੁੱਟ ਭਾਗ ਦਾ ਪਤਾ ਬਦਲ ਗਿਆ ਹੈ. ਆਮ ਤੌਰ ਤੇ, ਇਕ ਅਨੁਕ੍ਰਤ ਸੈਕਸ਼ਨ ਦੁਆਰਾ ਅਨੁਕੂਲਤਾ ਨਿਰਧਾਰਤ ਕੀਤੀ ਜਾਏਗੀ. ਪਤਾ ਸਿਰਫ ਤਾਂ ਹੀ ਬਦਲਿਆ ਜਾਵੇਗਾ ਜੇ ਇਹ ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ ਨਿਰਦਿਸ਼ਟ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੋਵੇ; ਭਾਵ, "SECTIONS" ਕਮਾਂਡ ਸੈਕਸ਼ਨ ਦੇ ਲਈ ਸ਼ੁਰੂਆਤੀ ਪਤੇ ਨੂੰ ਨਹੀਂ ਦਰਸਾਉਂਦਾ.

--ਹੌਲ-ਅਕਾਇਵ

--whole-archive ਵਿਕਲਪ ਤੋਂ ਬਾਅਦ ਕਮਾਂਡ ਲਾਈਨ ਤੇ ਹਰ ਇੱਕ ਅਕਾਇਵ ਲਈ, ਲੋੜੀਂਦੀ ਆਬਜੈਕਟ ਫਾਇਲਾਂ ਲਈ ਅਕਾਇਵ ਦੀ ਖੋਜ ਕਰਨ ਦੀ ਬਜਾਏ ਲਿੰਕ ਵਿੱਚ ਅਕਾਇਵ ਵਿੱਚ ਹਰੇਕ ਆਬਜੈਕਟ ਫਾਇਲ ਨੂੰ ਸ਼ਾਮਲ ਕਰੋ. ਇਹ ਆਮ ਤੌਰ ਤੇ ਆਰਕਾਈਵ ਫਾਈਲ ਨੂੰ ਸ਼ੇਅਰਡ ਲਾਇਬ੍ਰੇਰੀ ਵਿੱਚ ਬਦਲਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ, ਹਰ ਵਸਤ ਨੂੰ ਨਤੀਜੇ ਵਜੋਂ ਸ਼ੇਅਰ ਕੀਤੀ ਲਾਇਬ੍ਰੇਰੀ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਮਜਬੂਰ ਕਰਦਾ ਹੈ. ਇਹ ਚੋਣ ਇੱਕ ਤੋਂ ਵੱਧ ਵਾਰ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ.

Gcc ਤੋਂ ਇਸ ਚੋਣ ਦੀ ਵਰਤੋਂ ਕਰਨ ਸਮੇਂ ਦੋ ਨੋਟਸ: ਪਹਿਲੀ, ਜੀ ਸੀਸੀ ਇਸ ਚੋਣ ਬਾਰੇ ਨਹੀਂ ਜਾਣਦਾ, ਇਸ ਲਈ ਤੁਹਾਨੂੰ- Wl, -whole-archive ਨੂੰ ਵਰਤਣਾ ਪਵੇਗਾ . ਦੂਜਾ, ਆਰਚੀਵ ਦੀ ਤੁਹਾਡੀ ਸੂਚੀ ਦੇ ਬਾਅਦ , Wl, -no-complete-archive ਦੀ ਵਰਤੋਂ ਕਰਨ ਨੂੰ ਨਾ ਭੁੱਲੋ, ਕਿਉਂਕਿ gcc ਤੁਹਾਡੇ ਲਿੰਕ ਨੂੰ ਆਪਣੀ ਆਰਕਾਈਵਜ਼ ਦੀ ਆਪਣੀ ਸੂਚੀ ਵਿੱਚ ਜੋੜ ਦੇਵੇਗਾ ਅਤੇ ਤੁਸੀਂ ਇਸ ਫਲੈਗ ਨੂੰ ਉਨ੍ਹਾਂ ਦੇ ਨਾਲ ਨਾਲ ਪ੍ਰਭਾਵਿਤ ਨਹੀਂ ਕਰਨਾ ਚਾਹੁੰਦੇ.

--ਵਾਪ ਚਿੰਨ੍ਹ

ਚਿੰਨ੍ਹ ਲਈ ਇੱਕ ਰੈਪਰ ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰੋ. ਸੰਕੇਤ ਦੇ ਕਿਸੇ ਵੀ ਪ੍ਰਭਾਸ਼ਿਤ ਸੰਦਰਭ ਨੂੰ "__ ਸਮੇਟੋ_ਸਿੰਮੋਲ" ਲਈ ਹੱਲ ਕੀਤਾ ਜਾਵੇਗਾ. "__real_symbol" ਦੇ ਕੋਈ ਵੀ ਪ੍ਰਭਾਸ਼ਿਤ ਸੰਦਰਭ ਚਿੰਨ੍ਹ ਨੂੰ ਹੱਲ ਨਹੀਂ ਕੀਤਾ ਜਾਵੇਗਾ.

ਇਸ ਨੂੰ ਸਿਸਟਮ ਫੰਕਸ਼ਨ ਲਈ ਰੈਪਰ ਪ੍ਰਦਾਨ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ. ਰੈਪਰ ਫੰਕਸ਼ਨ ਨੂੰ "__ਵੈਪ_ਸਿੰਮੋਲ" ਕਿਹਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ ਜੇ ਇਹ ਸਿਸਟਮ ਕਾਰਜ ਨੂੰ ਕਾਲ ਕਰਨਾ ਚਾਹੁੰਦਾ ਹੈ, ਤਾਂ ਇਸਨੂੰ "__ ਰੀਅਲ_ਸੈਂਮੋਲ" ਨੂੰ ਕਾਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ.

ਇੱਥੇ ਇੱਕ ਮਾਮੂਲੀ ਉਦਾਹਰਨ ਹੈ:

void * __wrap_malloc (int c) {printf ("malloc ਨੂੰ% ld ਨਾਲ ਕਾਲ ਕੀਤਾ ਗਿਆ \ n", c); ਵਾਪਸ __real_malloc (c); }

ਜੇ ਤੁਸੀਂ ਇਸ ਫਾਈਲ ਨਾਲ ਦੂਜੇ ਕੋਡ ਨੂੰ --wrap malloc ਵਰਤਦੇ ਹੋ, ਤਾਂ "malloc" ਲਈ ਸਾਰੀਆਂ ਕਾਲਾਂ ਇਸਦੇ ਬਜਾਏ "__wrap_malloc" ਫੰਕਸ਼ਨ ਨੂੰ ਬੁਲਾ ਸਕਦੀਆਂ ਹਨ. "__ਰੇਪ_ਮਾਲੋਕ" ਵਿੱਚ "__real_malloc" ਨੂੰ ਕਾਲ ਕਰਨ ਨਾਲ ਅਸਲੀ "malloc" ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲ ਕੀਤਾ ਜਾਵੇਗਾ.

ਤੁਸੀਂ ਇੱਕ "__real_malloc" ਫੰਕਸ਼ਨ ਵੀ ਦੇਣੀ ਚਾਹੋਗੇ, ਤਾਂ ਕਿ --wrap ਚੋਣ ਤੋਂ ਬਿਨਾਂ ਸਬੰਧ ਸਫ਼ਲ ਹੋ ਜਾਵੇ. ਜੇ ਤੁਸੀਂ ਅਜਿਹਾ ਕਰਦੇ ਹੋ, ਤੁਹਾਨੂੰ "__ ਰੀਅਲ_ਮੱਲੋਕ" ਦੀ ਪਰਿਭਾਸ਼ਾ ਨੂੰ "__wrap_malloc" ਦੇ ਤੌਰ ਤੇ ਉਸੇ ਫਾਈਲ ਵਿੱਚ ਨਹੀਂ ਪਾਉਣਾ ਚਾਹੀਦਾ; ਜੇ ਤੁਸੀਂ ਕਰਦੇ ਹੋ, ਤਾਂ ਲਿੰਕਰ ਕੋਲ "malloc" ਨੂੰ ਸਮੇਟਣ ਦਾ ਇੱਕ ਮੌਕਾ ਹੈ ਇਸ ਤੋਂ ਪਹਿਲਾਂ ਏਸਬੇਲਰ ਕਾਲ ਦਾ ਹੱਲ ਕਰ ਸਕਦਾ ਹੈ.

--enable-new-dtags

--disable-new-dtags

ਇਹ ਲਿੰਕਰ ELF ਵਿਚ ਨਵੇਂ ਡਾਇਨਾਮਿਕ ਟੈਗ ਬਣਾ ਸਕਦਾ ਹੈ. ਪਰ ਪੁਰਾਣੇ ਐੱਲ ਐੱਫ ਸਿਸਟਮ ਉਨ੍ਹਾਂ ਨੂੰ ਸਮਝ ਨਹੀਂ ਸਕਦੇ. ਜੇ ਤੁਸੀਂ --enable-new-dtags ਨੂੰ ਨਿਰਦਿਸ਼ਟ ਕਰਦੇ ਹੋ , ਤਾਂ ਲੋੜ ਅਨੁਸਾਰ ਡਾਇਨੈਮਿਕ ਟੈਗ ਬਣਾਏ ਜਾਣਗੇ. ਜੇ ਤੁਸੀਂ --disable-new-dtags ਨੂੰ ਨਿਰਦਿਸ਼ਟ ਕਰਦੇ ਹੋ ਤਾਂ ਕੋਈ ਨਵੇਂ ਡਾਇਨਾਮਿਕ ਟੈਗ ਨਹੀਂ ਬਣਾਏ ਜਾਣਗੇ. ਡਿਫਾਲਟ ਰੂਪ ਵਿੱਚ, ਨਵੇਂ ਡਾਇਨਾਮਿਕ ਟੈਗ ਨਹੀਂ ਬਣਾਏ ਜਾਂਦੇ ਹਨ. ਯਾਦ ਰੱਖੋ ਕਿ ਉਹ ਵਿਕਲਪ ਸਿਰਫ ਐੱਲ ਐੱਫ ਸਿਸਟਮ ਲਈ ਉਪਲਬਧ ਹਨ.

I386 PE ਲਿੰਕਰ- ਸ਼ੇਅਰ ਚੋਣ ਨੂੰ ਸਹਿਯੋਗ ਦਿੰਦਾ ਹੈ, ਜੋ ਆਮ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਦੀ ਬਜਾਏ ਆਊਟਪੁੱਟ ਨੂੰ ਆਰਜੀ ਤੌਰ ਤੇ ਜੁੜੇ ਲਾਇਬਰੇਰੀ (ਡੀ.ਐਲ.ਐਲ) ਹੋਣ ਦਾ ਕਾਰਨ ਬਣਦਾ ਹੈ. ਜਦੋਂ ਤੁਸੀਂ ਇਸ ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋ ਤਾਂ ਤੁਹਾਨੂੰ "*. Dll" ਆਉਟਪੁੱਟ ਦਾ ਨਾਮ ਦੇਣਾ ਚਾਹੀਦਾ ਹੈ. ਇਸ ਤੋਂ ਇਲਾਵਾ, ਲਿੰਕਰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਸਟੈਂਡਰਡ "* .def" ਫਾਈਲਾਂ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ, ਜੋ ਕਿ ਲਿੰਕਰ ਕਮਾਂਡ ਲਾਈਨ ਤੇ ਕਿਸੇ ਆਬਜੈਕਟ ਫਾਇਲ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ (ਅਸਲ ਵਿਚ, ਇਹ ਆਰਕਾਈਵ ਤੋਂ ਪਹਿਲਾਂ ਇਹ ਚਿੰਨ੍ਹ ਨਿਰਯਾਤ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ, ਤਾਂ ਕਿ ਇਹ ਯਕੀਨੀ ਬਣਾਇਆ ਜਾ ਸਕੇ ਕਿ ਉਹ ਇਸ ਵਿੱਚ ਜੁੜ ਗਏ ਹਨ, ਇੱਕ ਆਮ ਇਕਾਈ ਫਾਇਲ ਵਾਂਗ)

ਸਭ ਟਾਰਗਿਟਾਂ ਲਈ ਆਮ ਚੋਣਾਂ ਤੋਂ ਇਲਾਵਾ, i386 PE ਲਿੰਕਰ ਵਾਧੂ ਕਮਾਂਡ ਲਾਈਨ ਚੋਣਾਂ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ ਜੋ i386 PE ਟਾਰਗਿਟ ਲਈ ਖਾਸ ਹਨ. ਵਿਕਲਪ ਜੋ ਮੁੱਲ ਲੈਂਦੇ ਹਨ ਉਨ੍ਹਾਂ ਦੇ ਮੁੱਲਾਂ ਤੋਂ ਸਪੇਸ ਜਾਂ ਇੱਕ ਬਰਾਬਰ ਦੇ ਚਿੰਨ ਨਾਲ ਵੱਖ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ.

--add-stdcall- alias

ਜੇਕਰ ਦਿੱਤਾ ਗਿਆ ਹੈ, ਤਾਂ ਇੱਕ stdcall ਪਿਛੇਤਰ (@ ਐਨ.ਐਨ.) ਦੇ ਪ੍ਰਤੀਕਾਂ ਨੂੰ ਐਕਸਪੋਰਟ ਕੀਤਾ ਜਾਏਗਾ ਅਤੇ ਪਿਛੇਤਰ ਛਿਪਾਏ ਨਾਲ ਵੀ.

--base-file ਫਾਇਲ

ਡਿਲਟੋਲ ਨਾਲ ਡੀਐਲਐਲ ਬਣਾਉਣ ਲਈ ਲੋੜੀਂਦੇ ਸਾਰੇ ਸਥਾਨਾਂ ਦੇ ਅਧਾਰ ਪਤਿਆਂ ਨੂੰ ਬਚਾਉਣ ਲਈ ਫਾਈਲ ਦਾ ਨਾਂ ਇਕ ਫਾਈਲ ਵਿਚ ਵਰਤੋਂ .

- dll

ਨਿਯਮਤ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਦੀ ਬਜਾਏ ਇੱਕ DLL ਬਣਾਓ. ਤੁਸੀਂ ਇੱਕ ਦਿੱਤੇ ".def" ਫਾਇਲ ਵਿੱਚ ਸ਼ੇਅਰ ਕੀਤੀ ਜਾਂ "LIBRARY" ਵੀ ਦਰਸਾ ਸਕਦੇ ਹੋ.

--enable-stdcall-fixup

--disable-stdcall-fixup

ਜੇਕਰ ਲਿੰਕ ਨੂੰ ਉਹ ਚਿੰਨ੍ਹ ਮਿਲਦਾ ਹੈ ਜਿਸਦਾ ਹੱਲ ਨਹੀਂ ਹੋ ਸਕਦਾ, ਤਾਂ ਇਹ ਇਕ ਹੋਰ ਪਰਿਭਾਸ਼ਿਤ ਚਿੰਨ੍ਹ ਦੀ ਭਾਲ ਕਰਕੇ `` ਫਜ਼ੀ ਲਿੰਕਿੰਗ '' ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੇਗਾ ਜੋ ਕਿ ਸਿਰਫ਼ ਸਿੰਬਲ ਨਾਂ ਦੇ ਫਾਰਮੈਟ (cdecl vs stdcall) ਵਿਚ ਹੀ ਹੁੰਦਾ ਹੈ ਅਤੇ ਲਿੰਕ ਨੂੰ ਜੋੜ ਕੇ ਇਸ ਨੂੰ ਹੱਲ ਕਰੇਗਾ ਮੈਚ ਨੂੰ. ਉਦਾਹਰਨ ਲਈ, ਅਣਪਛਿਰੇ ਚਿੰਨ੍ਹ "_ਫੂ" ਨੂੰ "_ਫੂ @ 12" ਫੰਕਸ਼ਨ ਨਾਲ ਜੋੜਿਆ ਜਾ ਸਕਦਾ ਹੈ ਜਾਂ ਅਣਪਛਾਤੀ ਪ੍ਰਤੀਕ "_bar @ 16" ਫੰਕਸ਼ਨ "_bar" ਨਾਲ ਜੋੜਿਆ ਜਾ ਸਕਦਾ ਹੈ. ਜਦੋਂ ਲਿੰਕਰ ਇਹ ਕਰਦਾ ਹੈ, ਇਹ ਇੱਕ ਚੇਤਾਵਨੀ ਪ੍ਰਿੰਟ ਕਰਦਾ ਹੈ, ਕਿਉਂਕਿ ਇਹ ਆਮ ਕਰਕੇ ਲਿੰਕ ਕਰਨ ਵਿੱਚ ਅਸਫਲ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ, ਲੇਕਿਨ ਕਈ ਵਾਰ ਤੀਜੀ-ਪਾਰਟੀ ਦੇ ਡੀਐਲਐਸ ਤੋਂ ਬਣਾਏ ਗਏ ਲਾਇਬ੍ਰੇਰੀਆਂ ਨੂੰ ਆਯਾਤ ਕਰਨ ਲਈ ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਵਰਤੋਂ ਯੋਗ ਬਣਾਉਣ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ ਜੇ ਤੁਸੀਂ --enable-stdcall-fixup ਨਿਰਧਾਰਤ ਕਰਦੇ ਹੋ, ਇਹ ਫੀਚਰ ਪੂਰੀ ਤਰਾਂ ਯੋਗ ਹੈ ਅਤੇ ਚੇਤਾਵਨੀਆਂ ਨਹੀਂ ਛਾਪੀਆਂ ਜਾਂਦੀਆਂ ਹਨ. ਜੇ ਤੁਸੀਂ --disabled-stdcall-fixup ਨਿਰਧਾਰਤ ਕਰਦੇ ਹੋ, ਤਾਂ ਇਹ ਫੀਚਰ ਆਯੋਗ ਹੋ ਜਾਂਦਾ ਹੈ ਅਤੇ ਅਜਿਹੀਆਂ ਅਸਮੱਰਲਾਂ ਨੂੰ ਗਲਤੀਆਂ ਮੰਨਿਆ ਜਾਂਦਾ ਹੈ.

--export-all-symbols

ਜੇਕਰ ਦਿੱਤਾ ਗਿਆ ਹੈ, ਡੀਐਲਐਲ ਦੀ ਉਸਾਰੀ ਲਈ ਵਰਤੇ ਜਾਂਦੇ ਸਾਰੇ ਆਲਮੀ ਚਿੰਨ੍ਹ DLL ਦੁਆਰਾ ਨਿਰਯਾਤ ਕੀਤੇ ਜਾਣਗੇ. ਧਿਆਨ ਰੱਖੋ ਕਿ ਇਹ ਮੂਲ ਹੈ ਜੇ ਉਥੇ ਕੋਈ ਨਿਰਯਾਤ ਪ੍ਰਤੀਕ ਨਾ ਹੋਵੇ ਜਦੋਂ ਡੈੱਕ ਡੀਫ ਫਾਈਲਾਂ ਰਾਹੀਂ ਸਪਸ਼ਟ ਤੌਰ ਤੇ ਐਕਸਪੋਰਟ ਕੀਤੇ ਜਾਂਦੇ ਹਨ ਜਾਂ ਫੰਕਸ਼ਨ ਐਟਰੀਬਿਊਟਸ ਦੁਆਰਾ ਨਿਰਯਾਤ ਤੌਰ ਤੇ ਬਰਾਮਦ ਕੀਤੇ ਜਾਂਦੇ ਹਨ, ਤਾਂ ਡਿਫਾਲਟ ਹੋਰ ਕੁਝ ਨਿਰਯਾਤ ਨਹੀਂ ਕਰਦਾ ਜਦੋਂ ਤੱਕ ਇਹ ਵਿਕਲਪ ਨਹੀਂ ਦਿੱਤਾ ਜਾਂਦਾ. ਨੋਟ ਕਰੋ ਕਿ "DllMain @ 12", "ਡੀਲਈਂਟਰੀਪੁਆਇੰਟ @ 0", "ਡੀਐਲਐੱਨ ਸੀਆਰਸੀਐਸਟਾਰਟਅੱਪ @ 12" ਅਤੇ "ਅਸਪਸ਼ਟ_ਪਿੱਟਰ" ਪ੍ਰਤੀਰੂਪ ਆਪਣੇ ਆਪ ਨਿਰਯਾਤ ਨਹੀਂ ਕੀਤੇ ਜਾਣਗੇ. ਨਾਲ ਹੀ, ਹੋਰ ਡੀ ਐਲ ਐਲ ਤੋਂ ਆਉਂਦੇ ਪ੍ਰਤੀਕਾਂ ਨੂੰ ਮੁੜ ਨਿਰਯਾਤ ਨਹੀਂ ਕੀਤਾ ਜਾਵੇਗਾ, ਨਾ ਹੀ ਡੀ ਐਲ ਐਲ ਦੇ ਅੰਦਰੂਨੀ ਲੇਆਉਟ ਜਿਵੇਂ ਕਿ "_ਹੈਡ_" ਨਾਲ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ ਜਾਂ "_ਇਨੇਮ" ਨਾਲ ਸਮਾਪਤ ਹੁੰਦਾ ਹੈ. ਇਸਦੇ ਇਲਾਵਾ, "libgcc", "libstd ++", "libmingw32", ਜਾਂ "crtX.o" ਤੋਂ ਕੋਈ ਸੰਕੇਤ ਨਹੀਂ ਭੇਜੇ ਜਾਣਗੇ. ਉਹ ਚਿੰਨ੍ਹ ਜਿਸ ਦੇ ਨਾਂ "__rtti_" ਜਾਂ "__builtin_" ਨਾਲ ਸ਼ੁਰੂ ਹੁੰਦੇ ਹਨ, C ++ DLLs ਨਾਲ ਸਹਾਇਤਾ ਕਰਨ ਲਈ ਨਹੀਂ ਐਕਸਪੋਰਟ ਕੀਤੇ ਜਾਣਗੇ. ਅੰਤ ਵਿੱਚ, ਸਾਈਗਵਿਨ-ਪ੍ਰਾਈਵੇਟ ਪ੍ਰਤੀਕਾਂ ਦੀ ਇੱਕ ਵਿਸਤ੍ਰਿਤ ਸੂਚੀ ਹੈ ਜੋ ਨਿਰਯਾਤ ਨਹੀਂ ਕੀਤੀ ਜਾਂਦੀ (ਸਪੱਸ਼ਟ ਤੌਰ ਤੇ, ਇਹ ਉਦੋਂ ਲਾਗੂ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਸਾਈਗਵਿਨ ਦੇ ਟੀਚਿਆਂ ਲਈ 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-symbols ਪ੍ਰਤੀਕ , ਪ੍ਰਤੀਕ , ...

ਚਿੰਨ੍ਹ ਦੀ ਇੱਕ ਸੂਚੀ ਨਿਸ਼ਚਿਤ ਕਰਦਾ ਹੈ ਜਿਸਨੂੰ ਆਪਣੇ ਆਪ ਨਿਰਯਾਤ ਨਹੀਂ ਕਰਨਾ ਚਾਹੀਦਾ. ਚਿੰਨ੍ਹ ਨਾਂ ਕਾਮੇ ਜਾਂ ਕੋਲੋਨ ਦੁਆਰਾ ਸੀਮਿਤ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ.

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

ਅਕਾਇਵ ਲਾਇਬਰੇਰੀਆਂ ਦੀ ਇੱਕ ਸੂਚੀ ਨਿਸ਼ਚਿਤ ਕਰਦਾ ਹੈ ਜਿਸ ਤੋਂ ਪ੍ਰਤੀਕਾਂ ਨੂੰ ਆਪਣੇ ਆਪ ਨਿਰਯਾਤ ਨਹੀਂ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ. ਲਾਇਬ੍ਰੇਰੀ ਨਾਂ ਕਾਮੇ ਜਾਂ ਕੋਲੋਨ ਦੁਆਰਾ ਸੀਮਿਤ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ. "-exclude-libs ALL" ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਨਾ ਆਟੋਮੈਟਿਕ ਨਿਰਯਾਤ ਤੋਂ ਸਾਰੇ ਅਕਾਇਵ ਲਾਇਬਰੇਰੀਆਂ ਦੇ ਚਿੰਨ੍ਹ ਨੂੰ ਬਾਹਰ ਕੱਢਦਾ ਹੈ. ਇਸ ਚੋਣ ਦੀ ਪਰਵਾਹ ਕੀਤੇ ਬਿਨਾਂ, ਇੱਕ .def ਫਾਈਲ ਵਿੱਚ ਨਿਸ਼ਚਤ ਰੂਪ ਵਿੱਚ ਸੂਚੀਬੱਧ ਚਿੰਨ੍ਹ ਅਜੇ ਵੀ ਨਿਰਯਾਤ ਕੀਤੇ ਜਾਂਦੇ ਹਨ.

- ਫਾਇਲ-ਇਕਸਾਰ

ਫਾਇਲ ਅਨੁਕੂਲਤਾ ਨਿਰਧਾਰਤ ਕਰੋ. ਫਾਈਲ ਵਿਚਲੇ ਭਾਗ ਹਮੇਸ਼ਾਂ ਫਾਈਲ ਆਫਸੈਟ ਤੋਂ ਸ਼ੁਰੂ ਹੋਣਗੇ ਜੋ ਇਸ ਨੰਬਰ ਦੇ ਗੁਣਜ ਹਨ. ਇਹ ਮੂਲ 512 ਹੈ

- ਹੀਪ ਰਿਜ਼ਰਵ

- ਹੀਪ ਰਿਜ਼ਰਵ , ਕਮਿਟ ਕਰੋ

ਰਿਜ਼ਰਵ (ਅਤੇ ਚੋਣਵੇਂ ਤੌਰ ਤੇ ਕਮਿਟ) ਨੂੰ ਮੈਮਰੀ ਦੀ ਮਾਤਰਾ ਨੂੰ ਇਸ ਪਰੋਗਰਾਮ ਲਈ ਢੱਕ ਵਜੋਂ ਵਰਤਣ ਲਈ ਨਿਰਧਾਰਤ ਕਰੋ. ਮੂਲ 1Mb ਰਿਜ਼ਰਵਡ, 4K ਵਚਨਬੱਧ ਹੈ

--ਮੈਜ-ਬੇਸ ਮੁੱਲ

ਆਪਣੇ ਪ੍ਰੋਗ੍ਰਾਮ ਜਾਂ ਡੀਐਲਐਲ ਦੇ ਅਧਾਰ ਐਡਰੈੱਸ ਦੀ ਵਰਤੋਂ ਕਰੋ ਇਹ ਸਭ ਤੋਂ ਘੱਟ ਮੈਮੋਰੀ ਟਿਕਾਣਾ ਹੈ, ਜੋ ਕਿ ਤੁਹਾਡੇ ਪਰੋਗਰਾਮ ਜਾਂ ਡੱਲੱਲ ਲੋਡ ਹੋਣ ਸਮੇਂ ਵਰਤੇਗਾ. ਆਪਣੇ ਡੀਐਲਐਸ ਦੀ ਕਾਰਗੁਜ਼ਾਰੀ ਸੁਧਾਰਨ ਅਤੇ ਸੁਧਾਰ ਕਰਨ ਦੀ ਜ਼ਰੂਰਤ ਨੂੰ ਘਟਾਉਣ ਲਈ, ਹਰ ਇੱਕ ਦਾ ਇੱਕ ਅਨੋਖਾ ਅਧਾਰ ਪਤਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ ਅਤੇ ਕਿਸੇ ਹੋਰ ਡੀਐਲਐਲ ਨੂੰ ਓਵਰਲੈਪ ਨਹੀਂ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ. ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਲਈ 0x400000 ਮੂਲ ਹੈ, ਅਤੇ 0x10000000 dlls ਲਈ.

--kill-at

ਜੇ ਦਿੱਤਾ ਗਿਆ ਤਾਂ ਸਟੈਂਡਰਡ ਪਿਛੇਤਰ (@ ਐਨ.ਐਨ.) ਨੂੰ ਨਿਰਯਾਤ ਕੀਤੇ ਜਾਣ ਤੋਂ ਪਹਿਲਾਂ ਸੰਕੇਤਾਂ ਤੋਂ ਲਾਹ ਦਿੱਤਾ ਜਾਵੇਗਾ.

--major-image-version value

`` ਈਮੇਜ਼ ਵਰਜ਼ਨ '' ਦੀ ਮੁੱਖ ਗਿਣਤੀ ਸੈੱਟ ਕਰਦਾ ਹੈ. ਡਿਫਾਲਟ ਲਈ 1

--major-os- ਵਰਜਨ ਮੁੱਲ

`` Os ਸੰਸਕਰਣ '' ਦੀ ਮੁੱਖ ਸੰਖਿਆ ਸੈੱਟ ਕਰਦਾ ਹੈ ਡਿਫਾਲਟ 4 ਤੇ

--major-subsystem- ਵਰਜਨ ਮੁੱਲ

`ਸਬਸਿਸਟਮ ਵਰਜ਼ਨ '' ਦੀ ਵੱਡੀ ਗਿਣਤੀ ਸੈੱਟ ਕਰਦਾ ਹੈ ਡਿਫਾਲਟ 4 ਤੇ

--minor-image-version ਮੁੱਲ

`` ਈਮੇਜ਼ ਵਰਜ਼ਨ '' ਦੀ ਛੋਟੀ ਗਿਣਤੀ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ. ਮੂਲ 0 ਤੱਕ

--minor-os- ਵਰਜਨ ਮੁੱਲ

`` Os ਸੰਸਕਰਣ '' ਦੀ ਛੋਟੀ ਗਿਣਤੀ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ. ਮੂਲ 0 ਤੱਕ

--minor-subsystem- ਵਰਜਨ ਮੁੱਲ

`ਸਬਸਿਸਟਮ ਵਰਜ਼ਨ 'ਦੀ ਛੋਟੀ ਗਿਣਤੀ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ. ਮੂਲ 0 ਤੱਕ

--output-def ਫਾਇਲ

ਲਿੰਕਰ ਫਾਇਲ ਫਾਈਲ ਬਣਾ ਦੇਵੇਗਾ ਜਿਸ ਵਿੱਚ ਇੱਕ ਡੀਏਆਰਐਫ ਫਾਈਲ ਸ਼ਾਮਿਲ ਹੋਵੇਗੀ ਜੋ ਲਿੰਕਰ ਦੁਆਰਾ ਤਿਆਰ ਕੀਤੀ ਗਈ DLL ਨਾਲ ਸੰਬੰਧਿਤ ਹੈ. ਇਹ ਡੀ.ਈ.ਐਫ. ਫਾਈਲ (ਜਿਸ ਨੂੰ "* .def" ਕਿਹਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ) "dlltool" ਨਾਲ ਇੱਕ ਆਯਾਤ ਲਾਇਬ੍ਰੇਰੀ ਬਣਾਉਣ ਲਈ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ ਜਾਂ ਆਪਣੇ ਆਪ ਜਾਂ ਸੰਦਰਭ ਨਿਰਯਾਤ ਕੀਤੇ ਪ੍ਰਤੀਕਾਂ ਦੇ ਸੰਦਰਭ ਦੇ ਤੌਰ ਤੇ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ.

--out-implib ਫਾਇਲ

ਲਿੰਕਰ ਫਾਇਲ ਫਾਈਲ ਬਣਾ ਦੇਵੇਗਾ ਜਿਸ ਵਿੱਚ ਲਿੰਕਰ ਜਨਰੇਟ ਕਰਨ ਵਾਲੇ DLL ਨਾਲ ਸੰਬੰਧਿਤ ਇੱਕ ਆਯਾਤ ਦੀ ਲਿਬ ਹੋਵੇਗੀ. ਇਹ ਅਯਾਤ lib (ਜਿਸ ਨੂੰ "* .dll.a" ਕਿਹਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ ਜਾਂ "* .a") ਨੂੰ ਡੀਐਲਐਲ ਦੇ ਵਿਰੁੱਧ ਕਲੰਕ ਨੂੰ ਜੋੜਨ ਲਈ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ; ਇਹ ਵਿਵਹਾਰ ਇੱਕ ਵੱਖਰਾ "dlltool" ਆਯਾਤ ਲਾਇਬਰੇਰੀ ਨਿਰਮਾਣ ਪਗ਼ ਨੂੰ ਛੱਡਣਾ ਸੰਭਵ ਬਣਾਉਂਦਾ ਹੈ.

--enable-auto-image-base

DLLs ਲਈ ਆਟੋਮੈਟਿਕਲੀ ਈਮੇਜ਼ ਬੇਸ ਚੁਣੋ, ਜਦ ਤੱਕ ਕਿ "--image-base" ਆਰਗੂਮੈਂਟ ਦੀ ਵਰਤੋਂ ਨਾ ਕੀਤੇ ਜਾਣ. ਹਰੇਕ DLL, ਇਨ-ਮੈਮਰੀ ਟੱਕਰ ਅਤੇ ਰੀਲੋਕੇਸ਼ਨ ਲਈ ਵਿਲੱਖਣ ਚਿੱਤਰ ਦੇ ਆਧਾਰ ਬਣਾਉਣ ਲਈ dllname ਤੋਂ ਤਿਆਰ ਹੈਸ਼ ਦੀ ਵਰਤੋਂ ਕਰਕੇ, ਜੋ ਪ੍ਰੋਗਰਾਮ ਐਕਜ਼ੀਕਿਯੂਟ ਨੂੰ ਦੇਰੀ ਕਰ ਸਕਦਾ ਹੈ.

--disable-auto-image-base

ਆਪਣੇ ਆਪ ਇਕ ਵਿਲੱਖਣ ਚਿੱਤਰ ਬੇਸ ਪੈਦਾ ਨਾ ਕਰੋ. ਜੇ ਕੋਈ ਵੀ ਯੂਜ਼ਰ-ਨਿਰਭਰ ਚਿੱਤਰ ਬੇਸ ("-image-base") ਨਹੀਂ ਹੈ ਤਾਂ ਫਰੇਮਅੱਪ ਡਿਫਾਲਟ ਵਰਤੋ.

- dll-search-prefix ਸਤਰ

ਜਦੋਂ ਇੱਕ ਆਯਾਤ ਲਾਇਬ੍ਰੇਰੀ ਬਿਨਾਂ ਇੱਕ dll ਨੂੰ ਆਰਜੀ ਤੌਰ ਤੇ ਜੋੜਦੇ ਹੋ, ਤਾਂ "lib .dll" ਦੀ ਤਰਜੀਹ ਵਿੱਚ " .dll" ਦੀ ਖੋਜ ਕਰੋ. ਇਹ ਵਿਵਹਾਰ ਵੱਖ ਵੱਖ `` ਸਬ ਪਲੇਟਫਾਰਮ '' ਲਈ ਬਣਾਇਆ ਗਿਆ DLLs ਵਿਚਕਾਰ ਆਸਾਨ ਫ਼ਰਕ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ: ਮੂਲ, ਸਾਈਗਵਿਨ, ਯੂਵਨ, ਪੀ.ਵੀ. ਆਦਿ. ਉਦਾਹਰਣ ਵਜੋਂ, ਸਾਇਗਵਿਨ DLL ਆਮ ਤੌਰ 'ਤੇ "- dll-search-prefix = cyg" ਵਰਤਦੇ ਹਨ.

--enable-auto-import

ਡੀ ਐੱਲ ਐੱਲਾਂ ਤੋਂ DATA ਦਰਾਮਦ ਲਈ "_symbol" ਤੋਂ "__imp__symbol" ਦੇ ਅਨੌਖਿਕ ਸੰਬੰਧ ਬਣਾਉ, ਅਤੇ ਉਹਨਾਂ ਡੈਟਾ ਐਕਸਪੋਰਟਸ ਨਾਲ ਆਯਾਤ ਲਾਇਬ੍ਰੇਰੀਆਂ ਬਣਾਉਣ ਵੇਲੇ ਲੋੜੀਂਦੇ ਥੰਕਿੰਗ ਚਿੰਨ੍ਹ ਬਣਾਉ. ਇਹ ਆਮ ਤੌਰ 'ਤੇ' ਸਿਰਫ ਕੰਮ 'ਕਰੇਗਾ - ਪਰ ਕਈ ਵਾਰੀ ਤੁਸੀਂ ਇਹ ਸੁਨੇਹਾ ਵੇਖ ਸਕਦੇ ਹੋ:

"ਵੇਰੀਏਬਲ '' ਆਟੋ-ਇੰਪੋਰਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ. ਵੇਰਵੇ ਲਈ ld ਦੇ" --enable-auto-import "ਲਈ ਦਸਤਾਵੇਜ਼ ਨੂੰ ਪੜੋ."

ਇਹ ਸੁਨੇਹਾ ਉਦੋਂ ਆਉਂਦਾ ਹੈ ਜਦੋਂ ਕੁਝ (ਉਪ) ਐਕਸਪ੍ਰੈਸ ਅਖ਼ੀਰਲੇ ਦੋ ਅਖ਼ਬਾਰਾਂ ਦੇ ਸੰਕਲਪ ਦੁਆਰਾ ਦਿੱਤੇ ਗਏ ਪਤੇ ਨੂੰ ਐਕਸੈਸ ਕਰਦੇ ਹਨ (Win32 ਆਯਾਤ ਟੇਬਲ ਕੇਵਲ ਇੱਕ ਦੀ ਆਗਿਆ ਦਿੰਦੇ ਹਨ). ਅਜਿਹੀਆਂ ਸਥਿਤੀਆਂ ਜਿਹਨਾਂ ਵਿੱਚ ਇਹ ਵਾਪਰ ਸਕਦਾ ਹੈ ਜਿਵੇਂ DLL ਤੋਂ ਆਯਾਤ ਕੀਤੇ ਆਰਗੂਲੇਟ ਵੇਰੀਏਬਲ ਦੇ ਮੈਂਬਰ ਖੇਤਰਾਂ ਦੇ ਨਾਲ ਨਾਲ ਇੱਕ ਡੀਐਲਐਲ ਤੋਂ ਆਯਾਤ ਕੀਤੇ ਇੱਕ ਐਰੇ ਵੇਰੀਏਬਲ ਵਿੱਚ ਲਗਾਤਾਰ ਸੂਚਕਾਂਕ ਦੀ ਵਰਤੋਂ. ਕੋਈ ਮਲਟੀਵਰਡ ਵੇਰੀਏਬਲ (ਐਰੇ, structs, ਲੰਬੇ ਲੰਬੇ, ਆਦਿ) ਇਸ ਗਲਤੀ ਦੀ ਹਾਲਤ ਨੂੰ ਟਰਿੱਗਰ ਕਰ ਸਕਦੇ ਹਨ ਹਾਲਾਂਕਿ, ਨਿਰੋਧਿਤ ਨਿਰਯਾਤਿਤ ਵੇਰੀਏਬਲ ਦੀ ਸਹੀ ਡੇਟਾ ਕਿਸਮ ਦੀ ਪਰਵਾਹ ਕੀਤੇ ਬਿਨਾਂ, ld ਹਮੇਸ਼ਾ ਇਸਨੂੰ ਪਛਾਣ ਲਏਗਾ, ਚੇਤਾਵਨੀ ਜਾਰੀ ਕਰੇਗਾ, ਅਤੇ ਬੰਦ ਹੋ ਜਾਵੇਗਾ

ਇਸ ਮੁਸ਼ਕਲ ਨੂੰ ਹੱਲ ਕਰਨ ਦੇ ਕਈ ਤਰੀਕੇ ਹਨ, ਨਿਰਯਾਤ ਕੀਤੇ ਵੈਰੀਏਬਲ ਦੇ ਡੇਟਾ ਕਿਸਮ ਦੀ ਪਰਵਾਹ ਕੀਤੇ ਬਿਨਾਂ:

ਇਕ ਤਰੀਕਾ ਹੈ - ਯੋਗ-ਰਨਟਾਈਮ-ਸੂਡੋ-ਰਿਾਲਕ ਸਵਿੱਚ. ਇਸ ਨਾਲ ਰਨਟਾਈਮ ਵਾਤਾਵਰਣ ਲਈ ਤੁਹਾਡੇ ਕਲਾਇੰਟ ਕੋਡ ਵਿਚ ਹਵਾਲੇ ਦੇ ਸਮਾਧਾਨ ਦਾ ਕੰਮ ਛੱਡ ਜਾਂਦਾ ਹੈ, ਇਸ ਲਈ ਇਹ ਢੰਗ ਉਦੋਂ ਕੰਮ ਕਰਦਾ ਹੈ ਜਦੋਂ ਰੰਨਟਾਈਮ ਏਨੁਆਇਰਟਮੈਂਟ ਇਸ ਫੀਚਰ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੋਵੇ.

ਇੱਕ ਦੂਜਾ ਹੱਲ ਹੈ ਕਿ ਇੱਕ 'ਸਥਿਰ' ਨੂੰ ਇੱਕ ਪਰਿਵਰਤਨਸ਼ੀਲ ਹੋਣ ਲਈ ਮਜ਼ਬੂਰ ਕਰਨਾ --- ਇਹ ਹੈ ਕਿ, ਕੰਪਾਇਲ ਸਮੇਂ ਅਣਜਾਣ ਅਤੇ ਅਣ-ਅਨੁਕੂਲ. ਐਰੇ ਲਈ, ਦੋ ਸੰਭਾਵਨਾਵਾਂ ਹਨ: a) ਸੂਚਕਾਂਕ (ਅਰੇ ਦੇ ਪਤੇ) ਨੂੰ ਇੱਕ ਵੇਰੀਏਬਲ ਬਣਾਉ, ਜਾਂ b) 'ਸਥਿਰ' ਸੂਚਕਾਂਕ ਨੂੰ ਇੱਕ ਵੇਰੀਏਬਲ ਬਣਾਉ. ਇਸ ਪ੍ਰਕਾਰ:

extern type extern_array []; extern_array [1] -> {ਅਸਥਿਰ ਕਿਸਮ * t = extern_array; t [1]}

ਜਾਂ

extern type extern_array []; extern_array [1] -> {ਆਵਾਜਾਈ int t = 1; extern_array [t]}

Structs (ਅਤੇ ਬਹੁਤੇ ਹੋਰ ਮਲਟੀਵਾਇਡ ਡਾਟਾ ਕਿਸਮਾਂ) ਲਈ ਇਕੋ ਇਕ ਵਿਕਲਪ ਹੈ ਕਿ ਸਟਰੈਕਟ ਖੁਦ ਬਣਾਉਣਾ ਹੈ (ਜਾਂ ਲੰਬਾ ਲੰਬਾ, ਜਾਂ ...) ਵੇਰੀਏਬਲ:

extern struct s extern_struct; extern_struct.field -> {ਆਲੋਟਾਈ ਆਰਟੈਕਟ s * t = & extern_struct; t-> ਖੇਤਰ}

ਜਾਂ

extern ਲੰਬੇ ਲੰਬੇ extern_ll; extern_ll -> {ਲੰਮੇ ਸਮੇਂ ਤੋਂ ਭਲਕੇ * local_ll = & extern_ll; * local_ll}

ਇਸ ਮੁਸ਼ਕਲ ਨਾਲ ਨਜਿੱਠਣ ਦਾ ਇਕ ਤੀਜਾ ਤਰੀਕਾ ਅਪਰਾਧਿਕ ਪ੍ਰਤੀਕ ਲਈ 'ਆਟੋ-ਆਯਾਤ' ਛੱਡਣਾ ਹੈ ਅਤੇ ਇਸ ਨੂੰ "__declspec (dllimport)" ਨਾਲ ਨਿਸ਼ਾਨਬੱਧ ਕਰਨਾ ਹੈ. ਹਾਲਾਂਕਿ, ਅਭਿਆਸ ਵਿੱਚ ਕਿ ਕੰਪਾਇਲ ਟਾਈਮ # ਡਿਫਾਈਨਸ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਜ਼ਰੂਰਤ ਇਹ ਦਰਸਾਉਣ ਲਈ ਕਿ ਕੀ ਤੁਸੀਂ DLL ਬਣਾ ਰਹੇ ਹੋ, ਕਲਾਇੰਟ ਕੋਡ ਦਾ ਨਿਰਮਾਣ ਕਰਨਾ ਹੈ ਜੋ DLL ਨਾਲ ਲਿੰਕ ਹੋਵੇਗਾ, ਜਾਂ ਸਿਰਫ ਇੱਕ ਸਥਿਰ ਲਾਇਬ੍ਰੇਰੀ ਨੂੰ ਬਣਾਉਣ / ਲਿੰਕ ਕਰਨ ਨਾਲ. 'ਆਫਸੈੱਟ ਆਫਸੈੱਟ ਔਫਸੈੱਟ' ਨਾਲ ਜੁੜੇ ਸਿੱਧੇ ਪਤੇ ਦੇ ਹੱਲ ਦੇ ਵੱਖ-ਵੱਖ ਤਰੀਕਿਆਂ ਵਿਚ ਚੋਣ ਕਰਨ 'ਤੇ, ਤੁਹਾਨੂੰ ਆਮ ਵਾਸਤਵਿਕ ਵਰਤੋਂ ਬਾਰੇ ਸੋਚਣਾ ਚਾਹੀਦਾ ਹੈ:

ਮੂਲ:

--foo.h extern ਐਂਆਰ []; --foo.c #include "foo.h" void main (int argc, char ** argv) {printf ("% d \ n", ਐਰ [1]); }

ਹੱਲ 1:

--foo.h extern ਐਂਆਰ []; --foo.c #include "foo.h" void main (int argc, char ** argv) {/ * ਇਹ ਹੱਲ win32 ਅਤੇ cygwin ਲਈ ਹੈ; "ਆਪਟੀਮਾਈਜ਼" * ਨਾ ਕਰੋ / ਪਰਿਵਰਤਨਸ਼ੀਲ int * parr = arr; printf ("% d \ n", ਪੈਰਾ [1]); }

ਹੱਲ 2:

--foo.h/ * ਨੋਟ: ਆਟੋ-ਐਕਸਪੋਰਟ ਨੂੰ ਮੰਨਿਆ ਗਿਆ ਹੈ (__declspec (dllexport)) * / #if (ਪਰਿਭਾਸ਼ਿਤ (_WIN32) || ਪਰਿਭਾਸ਼ਿਤ (__ ਸੀਜੀਜੀਆਈਆਈ __)) && \! (ਪਰਿਭਾਸ਼ਿਤ (FOO_BUILD_DLL) || ਪਰਿਭਾਸ਼ਿਤ )) #define FOO_IMPORT __declspec (dllimport) #else #define FOO_IMPORT #endif EXTER FOO_IMPORT ਇੰਟ ਆਰਆਰ []; --foo.c #include "foo.h" void main (int argc, char ** argv) {printf ("% d \ n", ਐਰ [1]); }

ਇਸ ਸਮੱਸਿਆ ਤੋਂ ਬਚਣ ਦਾ ਇੱਕ ਚੌਥਾ ਤਰੀਕਾ ਹੈ ਕਿ ਅਪਰਾਧ ਕਰਨ ਵਾਲੇ ਵੇਰੀਏਬਲਾਂ ਲਈ ਡੇਟਾ ਇੰਟਰਫੇਸ ਦੀ ਬਜਾਏ ਇੱਕ ਕਾਰਜਸ਼ੀਲ ਇੰਟਰਫੇਸ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ ਆਪਣੀ ਲਾਇਬ੍ਰੇਰੀ ਨੂੰ ਮੁੜ-ਕੋਡ ਦੇਣਾ ਹੋਵੇ (ਜਿਵੇਂ ਕਿ set_foo () ਅਤੇ get_foo () ਐਕਸੈਸਰ ਫੰਕਸ਼ਨ).

--disable-auto-import

DLLs ਤੋਂ DATAimports ਲਈ "_symbol" ਤੋਂ "__imp__symbol" ਨੂੰ ਜੋੜਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਨਾ ਕਰੋ.

--enable-runtime-sudo-reloc

ਜੇ ਤੁਹਾਡੇ ਕੋਡ ਵਿੱਚ --enable-auto-import ਭਾਗ ਵਿੱਚ ਦਰਸਾਏ ਗਏ ਸ਼ਬਦ ਸ਼ਾਮਲ ਹਨ, ਅਰਥ ਹੈ ਕਿ, ਡੀਏਐਲਐਲ ਤੋਂ ਗੈਰ-ਜ਼ੀਨ ਆਫਸੈੱਟ ਦੇ ਨਾਲ DATAimports, ਇਹ ਸਵਿੱਚ 'ਰੰਨਟਾਈਮ ਸਿਊਡੋ ਰੀਲੋਕੇਸ਼ਨ' ਦੀ ਇੱਕ ਵੈਕਟਰ ਬਣਾਵੇਗੀ, ਜਿਸ ਦਾ ਵਰਣਨ ਬਦਲਣ ਲਈ ਰੰਨਟਾਈਮ ਵਾਤਾਵਰਣ ਦੁਆਰਾ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ. ਤੁਹਾਡੇ ਕਲਾਇੰਟ ਕੋਡ ਵਿਚ ਅਜਿਹੇ ਡਾਟਾ ਲਈ.

--disable-runtime-pseudo-reloc

DLLs ਤੋਂ ਗ਼ੈਰ ਜ਼ੀਰੋ ਆਫਸੈੱਟ ਡੈਟਾ ਆਯਾਤ ਲਈ ਸੂਡੋ ਰੀਲੋਕਸ਼ਨ ਨਾ ਬਣਾਓ. ਇਹ ਮੂਲ ਹੈ

--enable-extra-pe-debug

ਸਵੈ-ਇੰਪੋਰਟ ਚਿੰਨ੍ਹ ਥੰਕਿੰਗ ਨਾਲ ਸੰਬੰਧਿਤ ਹੋਰ ਡੀਬੱਗ ਜਾਣਕਾਰੀ ਵੇਖੋ.

--ਸੈਕਸ਼ਨ-ਅਲਾਈਨਮੈਂਟ

ਸੈਕਸ਼ਨ ਅਲਾਈਨਮੈਂਟ ਸੈੱਟ ਕਰਦਾ ਹੈ ਮੈਮੋਰੀ ਵਿਚਲੇ ਭਾਗ ਹਮੇਸ਼ਾਂ ਉਹਨਾਂ ਪਤਿਆਂ 'ਤੇ ਸ਼ੁਰੂ ਹੁੰਦੇ ਹਨ ਜਿਹੜੇ ਇਸ ਨੰਬਰ ਦੇ ਇੱਕ ਗੁਣ ਹਨ. ਮੂਲ 0x1000

- ਸਟੈਕ ਰਿਜ਼ਰਵ

- ਸਟੈਕ ਰਿਜ਼ਰਵ , ਕਮਿਟ ਕਰੋ

ਰਿਜ਼ਰਵ (ਅਤੇ ਚੋਣਵੇਂ ਤੌਰ ਤੇ ਕਮਿਟ) ਨੂੰ ਇਸ ਪ੍ਰੋਗਰਾਮ ਲਈ ਸਟੈਕ ਵਜੋਂ ਵਰਤਣ ਲਈ ਮੈਮੋਰੀ ਦੀ ਮਾਤਰਾ ਨੂੰ ਦਿਓ. ਡਿਫਾਲਟ 2 ਮੈਬਾ ਰਾਖਵਾਂ ਹੈ, 4K ਵਚਨਬੱਧ ਹੈ.

--ਸੰਕਟਕਾਲੀਨ

--ਸਮਾਂਸਿਸਟਮ ਜੋ : ਮੁੱਖ

--ਸਮਾਂਸਿਸਟਮ ਜੋ : ਮੁੱਖ . ਨਾਬਾਲਗ

ਸਬਸਿਸਟਮ ਦਰਸਾਉਂਦਾ ਹੈ ਜਿਸ ਦੇ ਤਹਿਤ ਤੁਹਾਡੇ ਪ੍ਰੋਗਰਾਮ ਨੂੰ ਲਾਗੂ ਕੀਤਾ ਜਾਵੇਗਾ. ਕਾਨੂੰਨੀ ਮੁੱਲ ਜਿਸ ਲਈ "ਮੂਲ", "ਵਿੰਡੋਜ਼", "ਕੰਸੋਲ", ਅਤੇ "ਪਜ਼ਿਕਸ" ਹਨ. ਤੁਸੀਂ ਸਬਸਿਸਟਮ ਵਰਜਨ ਵੀ ਚੋਣਵੇਂ ਰੂਪ ਵਿੱਚ ਸੈਟ ਕਰ ਸਕਦੇ ਹੋ.

ਜਰੂਰੀ: ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ ਤੇ ਕਮਾਂਡ ਕਿਵੇਂ ਵਰਤੀ ਜਾਂਦੀ ਹੈ ਇਹ ਵੇਖਣ ਲਈ man ਕਮਾਂਡ ( % man ) ਵਰਤੋ.