.DEF

DEF-fil

Module-Definition File
Ställ en fråga
SNABBT SVAR

En DEF-fil är en länkardirektivfil i klartext - oftast en EXPORTS-lista som talar om för Windows-länkaren vilka funktioner en DLL ska exponera. Öppna den i valfri textredigerare som VS Code eller Notepad++. Det är en byggindata som skickas till länkaren med /DEF:name.def, inte ett program du kör.

Utvecklare: Microsoft (Windows toolchain; also used by MinGW/GCC, Watcom, Digital Mars) Kategori: Utvecklarfiler MIME: text/plain
ÖPPNAS PÅ Windows macOS Linux
Relaterat: .DO · .MD · .HEX · .XSD

På denna sida

19k+ filtillägg indexerade
Senast granskad Jul 13, 2026

Osäker på vad din fil är?

Släpp valfri fil i vår identifierare - vi läser bara de första byten för att namnge formatet.

Identifiera en fil

Vad är filformatet DEF?

.def-filer är associerade med utvecklingsmiljöer för Windows och OS/2, och används tillsammans med C, C++ och andra kompilerade språk.

Filer med filtillägget .def lagrar data i klartextformat. .def-filer kallas ibland för moduldefinitionsfiler och används för att generera DLL-bibliotek. En .def-fil lagrar en speciell uppsättning länkardirektiv - instruktioner som LIBRARY, EXPORTS, IMPORTS, SECTIONS, HEAPSIZE och STACKSIZE - som används för att definiera nyckelaspekter av ett DLL-bibliotek, inklusive vilka funktioner och datasymboler som exponeras för anropare och vilka ordningsnummer (ordinals) de bär.

Filen skickas till länkaren vid byggtillfället med växeln /DEF:name.def (MSVC) eller motsvarande flaggor i MinGW/GCC och LLVM lld-link. Det är en byggindata, inte en kompilerad artefakt; den resulterande binären är en .dll eller .exe.

En DLL är en biblioteksfil som lagrar exekverbar kod och annan relaterad data. DLL-filer är återanvändbara - de kan nås av flera applikationer samtidigt - och laddas dynamiskt vid behov. DLL-filer är också ett sätt att spara diskutrymme och arbetsminne tack vare sin dynamiska natur. Uppdatering av programvara underlättas också av det faktum att DLL-filer delas mellan flera applikationer.

Moderna C/C++-kompilatorer tillåter utvecklare att markera exporterade symboler direkt i källkoden med __declspec(dllexport), vilket i hög grad minskar behovet av en separat .def-fil. Men .def-filer stöds fortfarande av den nuvarande MSVC-länkaren (link.exe) och LLVM lld-link, och föredras fortfarande när en stabil, explicit ordnad exporttabell krävs.

Säkerhet & trygghet

RISK: LOW

En moduldefinitionsfil (.def) är en liten byggfil i klartext och är säker att öppna och läsa - den kan inte exekveras. Den enda praktiska risken är att redigera den i ett riktigt projekt: att ändra eller ta bort en EXPORTS-post ändrar DLL-filens publika gränssnitt och kan förstöra för anropare eller ändra export-ordinals, så förstå ABI-påverkan innan du redigerar. Som med alla källfiler bör du endast lita på .def-filer från projektkällor du kontrollerar.

Formatdetaljer

i ett nötskal
FULLSTÄNDIGT NAMNModule-Definition Fileäven känd som Module Definition File, DEF file
UTVECKLAREMicrosoft (Windows toolchain; also used by MinGW/GCC, Watcom, Digital Mars)sedan Windows / OS/2 development, late 1980s-1990s (16-bit, then Win32)
MIME-TYPtext/plain
TYPLänkardirektivfil i klartext (instruktioner: LIBRARY, EXPORTS, IMPORTS...)
Detta filtillägg används också av…
  • Tibia / OTClient kartfil (.def) - Vissa spelverktyg och Tibia-kartredigeraren använde .def för kart-/spawn-definitioner - orelaterat till länkare.
  • ESRI ArcView / SmartWare datadefinition - Äldre databas- och GIS-verktyg (SmartWare, ArcView, DataFlex) skrev egna .def-schema/definitionsfiler.
  • AniSprite animationsdefinition / Oberon-2 & Modula-2 DEFINITION-modul - AniSprite lagrade sprite-animationsdefinitioner i .def; Modula-2/Oberon använder .def för en moduls publika gränssnitt.

Program som öppnar DEF-filer

Windows4 apps
Windows Notepad Inbyggd Öppna med > Anteckningar för en snabb genomläsning av en liten .def; saknar syntaxhjälp.
Notepad Öppen källkod Högerklicka > Redigera med Notepad++ för att visa/redigera länkardirektiven med radnummer.
Visual Studio Code Gratis Öppna .def för att läsa/redigera EXPORTS-listan som klartext. Bästa kostnadsfria allmänna valet.
Visual Studio (MSVC) Freemium Lägg till .def i ett projekt och skicka den via Linker > Input > Module Definition File (/DEF). Visual Studio öppnar den även som text för redigering.
macOS1 app
Visual Studio Code Gratis Öppna .def för att läsa/redigera EXPORTS-listan som klartext. Bästa kostnadsfria allmänna valet.
Linux2 apps
nano / vim Öppen källkod Redigera i terminalen vid korsbyggnad av Windows-DLL:er (MinGW-w64/LLVM läser .def via -Wl,--def eller /DEF).
Visual Studio Code Gratis Öppna .def för att läsa/redigera EXPORTS-listan som klartext. Bästa kostnadsfria allmänna valet.

Tekniska detaljer

djup specifikation
FormattypLänkardirektivfil i klartext
MIME-typtext/plain
TeckenkodningASCII / ANSI; UTF-8 utan BOM är typiskt
Filsignatur (magic bytes)Ingen - identifieras av nyckelord som LIBRARY, EXPORTS eller NAME i början av rader
Typisk filstorlekUnder 1 KB till några KB (en exporterad symbol per rad)
Kärninstruktion: LIBRARY / NAMEDeklarerar modulnamnet som bäddas in i DLL-filens interna huvud
Kärninstruktion: EXPORTSListar varje symbol som ska exponeras, med valfria flaggor för ordinal (@N), NONAME och DATA
Ytterligare instruktionerIMPORTS, SECTIONS (ställ in sektionsattribut), HEAPSIZE, STACKSIZE
Länkarväxel (MSVC)/DEF:filename.def skickas till link.exe vid byggtillfället
Verktygskedjor som stödsMSVC link.exe, MinGW/GCC ld, LLVM lld-link, Watcom linker, Digital Mars linker
Utdata-artefakterStyr exporttabellen för en .dll och det importbibliotek (.lib) som genereras tillsammans med den
Associerade operativsystemWindows (primär); OS/2 (föråldrad); 16-bitars DOS (föråldrad)
Modernt alternativ__declspec(dllexport) i källkoden; .def föredras fortfarande för stabila export-ordinals och portabilitet mellan verktygskedjor
Äldre 16-bitars nyckelordCODE- och DATA-segmentattributinstruktioner som finns i 16-bitars Windows/OS/2 DEF-filer; föråldrade under Win32
Komprimering och krypteringIngen - lagras alltid som okomprimerad, okrypterad klartext
SläpptWindows / OS/2 development, late 1980s-1990s (16-bit, then Win32)
Senaste versionSame statement syntax used by the current MSVC linker (link.exe) and LLVM lld-link
Specifikationlearn.microsoft.com

DEF-konverteringar

Frågor & svar

frågat av användare
Ställ en snabb fråga
Få hjälp från personer som arbetar med DEF-filer. Var specifik - inkludera ditt system och programversion.
Inget konto behövs · svar vanligtvis inom en dag

Inga frågor än - bli den första att fråga om DEF-filer.

Vanliga frågor

Vad är en .def-fil inom programmering?
En moduldefinitionsfil: en lista i klartext med länkardirektiv - främst en EXPORTS-sektion som namnger de funktioner en DLL ska exponera. Du skickar den till länkaren (link /DEF:name.def) när du bygger en Windows DLL eller EXE.
Hur öppnar jag en .def-fil?
Det är klartext - öppna den i VS Code, Notepad++ eller redigeraren inuti Visual Studio. För att använda den i ett bygge, lägg till den i ditt projekts länkinställning för Module-Definition File (/DEF).
Behöver jag fortfarande en .def-fil om jag använder __declspec(dllexport)?
Ofta inte - exportattribut på källkodsnivå täcker de flesta fall. Men .def är fortfarande användbart för stabila export-ordinals, export av odekorerade C-namn eller verktygskedjor/äldre projekt som kräver det.
Hur skapar jag en .lib från en .def?
Använd MSVC LIB-verktyget: lib /DEF:name.def /OUT:name.lib /MACHINE:X64 (eller MinGW:s dlltool). Detta bygger ett importbibliotek så att annan kod kan länka mot den DLL som .def-filen beskriver.
Varför rapporterar min länkare saknade exporter?
Ofta beror det på att symbolen inte finns med i .def-filens EXPORTS-sektion, att namnet är dekorerat annorlunda än förväntat eller att dess ordinal har ändrats. Kontrollera att EXPORTS-listan matchar de faktiska funktionsnamnen och skickas till länkaren.
Min .def-fil är inte en länkfil - vad mer använder .def?
Flera orelaterade program återanvänder .def för sin egen «definitionsdata» - spelkartdefinitioner (t.ex. Tibia), databas/GIS-scheman (SmartWare, ArcView) eller Modula-2/Oberon-modulgränssnitt. Dessa är olika format som delar samma filtillägg.

Referenser

1Microsoft Learn - Module-Definition (.def) Fileslearn.microsoft.com
2Microsoft Learn - EXPORTS sectionlearn.microsoft.com

Fortsätt utforska

genom databasen

Populära filtillägg denna vecka

1.AQQAQQ Instant Messenger File
2.BINCD/DVD Disc Image (BIN/CUE)
3.PARTPartial Download File
4.MDMarkdown Document
5.RPMSGRestricted Permission Message
6.CRDOWNLOADChrome Partial Download File
7.NOMEDIAAndroid No-Media Marker File
8.PRDXSoftMaker Presentations Document
9.PRO6XProPresenter 6 Bundle File
10.SWFSmall Web Format (Shockwave Flash)

Relaterade filtillägg

.DOStata Do-File
.MDMarkdown Document
.HEXIntel HEX File
.XSDXML Schema Definition
.MAPSource Map (JavaScript / CSS)
.CONFIGConfiguration File

Gratis filverktyg

En filidentifierare och bildkonverterare direkt i webbläsaren - allt körs på din enhet.

Öppna verktygslådan

Bläddra bland filtillägg A-Ö