Bağlama
C++ projesinde bağlama adımı, derleyici kaynak kodu nesne dosyalarına (*.obj) derledikten sonra gerçekleştirilir. Bağlayıcı (link.exe
), nesne dosyalarını tek bir yürütülebilir dosyada birleştirir.
Bağlayıcı seçenekleri Visual Studio içinde veya dışında ayarlanabilir. Visual Studio'da, Çözüm Gezgini bir proje düğümüne sağ tıklayıp Özellikler'i seçerek özellik sayfalarını görüntüleyerek bağlayıcı seçeneklerine erişebilirsiniz. Sol bölmede Bağlayıcı'yı seçerek düğümü genişletin ve tüm seçenekleri görüntüleyin.
Bağlayıcı komut satırı söz dizimi
Bağlayıcıyı Visual Studio'nun dışında çalıştırdığınızda, girişi bir veya daha fazla yolla belirtebilirsiniz:
- Komut satırında:
- Komut dosyalarını kullanma
- Ortam değişkenlerinde
Bağlayıcı ilk olarak ortam değişkeninde LINK
belirtilen seçenekleri ve ardından komut satırında ve komut dosyalarında belirtilen sırayla seçenekleri işler. Bir seçenek farklı bağımsız değişkenlerle yinelenirse, işlenen son seçenek önceliklidir.
Seçenekler derlemenin tamamı için geçerlidir; belirli giriş dosyalarına hiçbir seçenek uygulanamıyor.
komutunu çalıştırmak link.exe
için aşağıdaki komut söz dizimini kullanın:
link arguments
Ekleme arguments
seçenekleri ve dosya adları ve herhangi bir sırada belirtilebilir. Seçenekler önce işlenir, sonra dosyalar. Bağımsız değişkenleri ayırmak için bir veya daha fazla boşluk veya sekme kullanın.
Not
Bu aracı yalnızca Visual Studio komut isteminden başlatabilirsiniz. Sistem komut isteminden veya Dosya Gezgini başlatamazsınız.
Komut satırı
Komut satırında bir seçenek, bir seçenek belirticiden( tire (-
) veya eğik çizgiden (/
) ve ardından seçeneğin adından oluşur. Seçenek adları kısaltılamaz. Bazı seçenekler, iki nokta üst üste ():
sonrasında belirtilen bir bağımsız değişken alır. Seçenek belirtiminde, seçenekteki tırnak içine alınmış bir dize dışında boşluk veya sekmeye /COMMENT
izin verilmez. Sayısal bağımsız değişkenleri ondalık veya C dili gösterimi olarak belirtin. Seçenek adları ve anahtar sözcük veya dosya adı bağımsız değişkenleri büyük/küçük harfe duyarlı değildir, ancak bağımsız değişken olarak tanımlayıcılar büyük/küçük harfe duyarlıdır.
Bağlayıcıya dosya geçirmek için, komut satırında komutun ardından link.exe
dosya adını belirtin. Dosya adıyla mutlak veya göreli bir yol belirtebilir ve dosya adında joker karakterler kullanabilirsiniz. Nokta (.
) ve dosya adı uzantısını atlarsanız, bağlayıcı dosyayı bulmak için uzantısını .obj
varsayar. Bağlayıcı, dosyaların içeriği hakkında varsayımlarda bulunmak için dosya adı uzantılarını veya bunların olmamasını kullanmaz. Dosya türünü inceleyerek belirler ve uygun şekilde işler.
Bağlayıcı başarı için sıfır döndürür (hata yok). Aksi takdirde, bağlantıyı durduran hata numarasını döndürür. Örneğin, bağlayıcı oluşturursa LNK1104
bağlayıcı 1104 döndürür. Buna göre, bağlayıcı tarafından bir hatada döndürülen en düşük hata numarası 1000'dir. 128 dönüş değeri, işletim sistemi veya .config dosyasıyla ilgili bir yapılandırma sorununu temsil eder; yükleyicisi veya link.exe
c2.dll
yüklenmedi.
Bağlayıcı komut dosyaları
komut satırı bağımsız değişkenlerini link.exe
komut dosyası biçiminde geçirebilirsiniz. Bağlayıcıya bir komut dosyası belirtmek için aşağıdaki söz dizimini kullanın:
link @commandfile
commandfile
, bir metin dosyasının adıdır. at işareti (@) ile dosya adı arasında boşluk veya sekmeye izin verilmez. Varsayılan uzantı yoktur; tüm uzantılar dahil olmak üzere tam dosya adını belirtmeniz gerekir. Joker karakterler kullanılamaz. Dosya adıyla mutlak veya göreli bir yol belirtebilirsiniz. Bağlayıcı, dosyayı aramak için bir ortam değişkeni kullanmaz.
Komut dosyasında bağımsız değişkenler boşluk veya sekmelerle (komut satırında olduğu gibi) ve yeni satır karakterleriyle ayrılır.
Komut dosyasında komut satırının tamamını veya bir bölümünü belirtebilirsiniz. Bir komutta link.exe
birden fazla komut dosyası kullanabilirsiniz. Bağlayıcı, komut dosyası girişini komut satırındaki o konumda belirtilmiş gibi kabul eder. Komut dosyaları iç içe yerleştirilemiyor. Bağlayıcı, belirtilmediği sürece /NOLOGO
komut dosyalarının içeriğini yankılar.
Örnek
Aşağıdaki komut bir DLL oluşturur. Nesne dosyalarının ve kitaplıklarının adlarını ayrı komut dosyalarına geçirir ve seçeneğin /EXPORTS
belirtimi için üçüncü bir komut dosyası kullanır:
link /dll @objlist.txt @liblist.txt @exports.txt
LINK ortam değişkenleri
Bağlayıcı aşağıdaki ortam değişkenlerini tanır:
LINK
ve_LINK_
tanımlandıysa. Bağlayıcı, ortam değişkenindeLINK
tanımlanan seçenekleri ve bağımsız değişkenleri önceden ekler ve işlemeden önce ortam değişkeninde_LINK_
tanımlanan seçenekleri ve bağımsız değişkenleri komut satırı bağımsız değişkenlerine ekler.LIB
ögesini seçin. Bağlayıcı, komut satırında veya seçeneğiyle/BASE
belirtilen bir nesneyi, kitaplığı veya başka bir dosyayı ararken yolu kullanırLIB
. Ayrıca, bir nesnedeLIB
adlı dosyayı.pdb
bulmak için yolunu kullanır. Değişken,LIB
noktalı virgülle ayrılmış bir veya daha fazla yol belirtimi içerebilir. Bir yol, Visual C++ yüklemenizin alt dizinine işaret\lib
etmelidir.PATH
, aracının çalışmasıCVTRES
gerekiyorsa ve dosyayı kendisiyle aynı dizindelink.exe
bulamazsa. (link.exe
bir.res
dosyayı bağlamayıCVTRES
gerektirir.)PATH
Visual C++ yüklemenizin\bin
alt dizinine işaret etmelidir.TMP
, OMF veya.res
dosyaları bağlarken bir dizin belirtmek için.
Ayrıca bkz.
C/C++ Derleme Başvurusu
MSVC Bağlayıcı Seçenekleri
Modül Tanımı (.def) Dosyaları
Gecikmeli Yüklenen DLL'ler için Bağlayıcı Desteği