Sdílet prostřednictvím


/ORDER (vložení funkcí v pořadí)

Zadejte pořadí propojení pro samostatně zabalené funkce (COMDAT).

Syntaxe

/ORDER:@název_souboru

Parametry

filename
Textový soubor, který určuje pořadí propojení pro funkce COMDAT.

Poznámky

Možnost kompilátoru /ORDER umožňuje optimalizovat chování stránkování programu seskupením funkce spolu s funkcemi, které volá. Můžete také seskupovat často volané funkce dohromady. Tyto techniky označované jako optimalizace prohození nebo stránkování zvyšují pravděpodobnost, že volaná funkce je v paměti v případě potřeby a nemusí být stránkována z disku.

Při kompilaci zdrojového kódu do souboru objektu můžete kompilátoru sdělit, aby každou funkci umístil do vlastní části označovanou jako COMDAT, pomocí možnosti kompilátoru /Gy (povolit propojení na úrovni funkce). Možnost linkeru /ORDER říká linkeru, aby umístil comDATs do spustitelného obrázku v pořadí, ve kterém zadáte.

Chcete-li zadat pořadí COMDAT, vytvořte soubor odpovědi, textový soubor, který obsahuje každý COMDAT podle názvu, jeden řádek, v pořadí, v jakém je má linker umístit. Předejte název tohoto souboru jako parametr názvu souboru parametru /ORDER. U funkcí jazyka C++ je název COMDAT ozdobnou formou názvu funkce. Použijte nedekódovaný název pro funkce mainjazyka C a pro funkce jazyka C++ deklarované jako extern "C". V názvech funkcí a zdobených názvech se rozlišují malá a velká písmena. Další informace o zdobených názvech naleznete v tématu Dekorované názvy.

Pokud chcete najít zdobené názvy objektů COMDAT, použijte v souboru objektu možnost /SYMBOLS nástroje DUMPBIN. Linker automaticky předepsá podtržítko (_) na názvy funkcí v souboru odpovědi, pokud název nezačíná otazníkem (?) nebo znakem (@). Pokud například zdrojový soubor, example.cpp, obsahuje funkce int cpp_func(int)extern "C" int c_func(int) a int main(void)příkaz DUMPBIN /SYMBOLS example.obj uvádí tyto ozdobené názvy:

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

V tomto případě zadejte názvy jako ?cpp_func@@YAHH@Z, c_funca main v souboru odpovědi.

Pokud se v možnostech linkeru zobrazí více než jedna možnost /ORDER , projeví se poslední zadaná možnost.

Možnost /ORDER zakáže přírůstkové propojení. Upozornění linkeru se může zobrazit LNK4075 při zadání této možnosti, pokud je povolené přírůstkové propojení, nebo pokud jste zadali možnost kompilátoru /ZI (přírůstkový soubor PDB ). Pokud chcete toto upozornění vypnout, můžete pomocí možnosti /INCREMENTAL:NO linker vypnout přírůstkové propojení a pomocí možnosti kompilátoru /Zi (generovat PDB) vygenerovat PDB bez přírůstkového propojení.

Poznámka:

Funkce LINK nemůže uspořádat statické funkce, protože názvy statických funkcí nejsou veřejnými názvy symbolů. Pokud je zadán parametr /ORDER , vygeneruje se upozornění linkeru LNK4037 pro každý symbol v souboru odpovědi objednávky, který je statický nebo nenalezen.

Nastavení tohoto parametru linkeru ve vývojovém prostředí sady Visual Studio

  1. Otevřete dialogové okno Stránky vlastností projektu. Podrobnosti najdete v tématu Nastavení kompilátoru C++ a vlastností sestavení v sadě Visual Studio.

  2. Vyberte stránku vlastností optimalizace linkeru >konfigurace.>

  3. Upravte vlastnost Order funkce tak, aby obsahovala název souboru odpovědi.

Programové nastavení tohoto parametru linkeru

Viz také

Referenční zdroje k linkeru MSVC
Možnosti linkeru MSVC