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.exeiç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.

Dekont

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 LNK1104bağ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.exec2.dllyü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

Bağlayıcı aşağıdaki ortam değişkenlerini tanır:

  • LINK ve _LINK_tanımlandıysa. Bağlayıcı, ortam değişkeninde LINK 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 nesnede LIB 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ı dizinde link.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