Aracılığıyla paylaş


/ORDER (İşlevleri Sırala)

Ayrı paketlenmiş (COMDAT) işlevleri için bağlantı sırasını belirtin.

Sözdizimi

/ORDER:@filename

Parametreler

filename
COMDAT işlevleri için bağlantı sırasını belirten bir metin dosyası.

Açıklamalar

/ORDER derleyici seçeneği, bir işlevi çağırdığı işlevlerle birlikte gruplandırarak programınızın disk belleği davranışını iyileştirmenizi sağlar. Sık çağrılan işlevleri birlikte de gruplandırabilirsiniz. Değiştirme ayarlaması veya sayfalama iyileştirmesi olarak bilinen bu teknikler, çağrılan bir işlevin gerektiğinde bellekte olma olasılığını artırır ve diskten diske çağrılması gerekmez.

Kaynak kodunuzu bir nesne dosyasında derlerken, /Gy (İşlev düzeyi bağlamayı etkinleştir) derleyici seçeneğini kullanarak derleyiciye her işlevi COMDAT adlı kendi bölümüne yerleştirmesini söyleyebilirsiniz. /ORDER bağlayıcı seçeneği bağlayıcıya yürütülebilir görüntüye belirttiğiniz sırayla COMDATs yerleştirmesini söyler.

COMDAT sırasını belirtmek için, bağlayıcı tarafından yerleştirilmesini istediğiniz sırayla, her COMDAT'ı satır başına bir adla listeleyen bir metin dosyası olan bir yanıt dosyası oluşturun. Bu dosyanın adını /ORDER seçeneğinin dosya adı parametresi olarak geçirin. C++ işlevleri için, COMDAT'ın adı işlev adının süslü biçimidir. C işlevleri ve olarak extern "C"bildirilen C++ işlevleri mainiçin sıralanmamış adı kullanın. İşlev adları ve düzenlenmiş adlar büyük/küçük harfe duyarlıdır. Süslü adlar hakkında daha fazla bilgi için bkz . Süslü Adlar.

COMDAT'larınızın süslü adlarını bulmak için nesne dosyasında DUMPBIN aracının /SYMBOLS seçeneğini kullanın. Bağlayıcı, ad bir soru işaretiyle (?) veya işaretle@ () başlamadığı sürece yanıt dosyasındaki işlev adlarına otomatik olarak bir alt çizgi (_) ekler. Örneğin, example.cpp bir kaynak dosyası ve extern "C" int c_func(int) int main(void)işlevleri int cpp_func(int)içeriyorsa komut DUMPBIN /SYMBOLS example.obj şu düzenlenmiş adları listeler:

...
088 00000000 SECT1A notype ()    External     | ?cpp_func@@YAHH@Z (int __cdecl cpp_func(int))
089 00000000 SECT22 notype ()    External     | _c_func
08A 00000000 SECT24 notype ()    External     | _main
...

Bu durumda, adları yanıt dosyanızda , c_funcve main olarak ?cpp_func@@YAHH@Zbelirtin.

Bağlayıcı seçeneklerinde birden fazla /ORDER seçeneği görüntülenirse, belirtilen son seçenek geçerli olur.

/ORDER seçeneği artımlı bağlamayı devre dışı bırakır. Artımlı bağlama etkinse veya /ZI (Artımlı PDB) derleyici seçeneğini belirttiyseniz bu seçeneği belirttiğinizde bağlayıcı uyarısı LNK4075 görebilirsiniz. Bu uyarıyı susturmak için artımlı bağlamayı kapatmak için /INCREMENTAL:NO bağlayıcı seçeneğini kullanabilir ve artımlı bağlama olmadan bir PDB oluşturmak için /Zi (PDB Oluştur) derleyici seçeneğini kullanabilirsiniz.

Not

Statik işlev adları ortak simge adları olmadığından, LINK statik işlevleri sıralayamıyor. /ORDER belirtildiğinde, statik olan veya bulunmayan sipariş yanıt dosyasındaki her simge için bağlayıcı uyarı LNK4037 oluşturulur.

Visual Studio geliştirme ortamındaki bu bağlayıcı seçeneğini ayarlamak için

  1. Projenin Özellik Sayfaları iletişim kutusunu açın. Ayrıntılar için bkz . Visual Studio'da C++ derleyicisi ve derleme özelliklerini ayarlama.

  2. Yapılandırma Özellikleri>Bağlayıcı>İyileştirme özellik sayfasını seçin.

  3. İşlev Sırası özelliğini yanıt dosyanızın adını içerecek şekilde değiştirin.

Bu bağlayıcı seçeneğini program aracılığıyla ayarlamak için

Ayrıca bkz.

MSVC bağlayıcı başvurusu
MSVC Bağlayıcı Seçenekleri