.DEF

DEF-fil

Module-Definition File
Still et spørsmål
HURTIGSVAR

En DEF-fil er en tekstfil med instruksjoner for en linker - som oftest en EXPORTS-liste som forteller Windows-linkeren hvilke funksjoner en DLL skal eksponere. Åpne den i et hvilket som helst tekstredigeringsprogram som VS Code eller Notepad++. Det er en bygg-input som sendes til linkeren med /DEF:navn.def, ikke et program du kjører.

Utvikler: Microsoft (Windows toolchain; also used by MinGW/GCC, Watcom, Digital Mars) Kategori: Utviklerfiler MIME: text/plain
ÅPNES PÅ Windows macOS Linux
Relatert: .DO · .MD · .HEX · .XSD

På denne siden

19k+ filendelser indeksert
Sist vurdert Jul 13, 2026

Usikker på hva filen din er?

Slipp hvilken som helst fil inn i vår identifikator - vi leser bare de første bytene for å navngi formatet.

Identifiser en fil

Hva er DEF-filformatet?

.def-filer er assosiert med utviklingsmiljøer for Windows og OS/2, og brukes sammen med C, C++ og andre kompilerte språk.

Filer med filendelsen .def lagrer data i rent tekstformat. .def-filer blir noen ganger referert til som moduldefinisjonsfiler og brukes til å generere DLL-biblioteker. En .def-fil lagrer et spesielt sett med linker-direktiver - utsagn som LIBRARY, EXPORTS, IMPORTS, SECTIONS, HEAPSIZE og STACKSIZE - som brukes til å definere sentrale aspekter ved et DLL-bibliotek, inkludert hvilke funksjoner og datasymboler som er eksponert for kallere og hvilke ordinalnumre de bærer.

Filen sendes til linkeren ved bygging ved hjelp av bryteren /DEF:navn.def (MSVC) eller tilsvarende flagg i MinGW/GCC og LLVM lld-link. Det er en bygg-input, ikke et kompilert produkt; den resulterende binærfilen er en .dll eller .exe.

En DLL er en biblioteksfil som lagrer kjørbar kode og andre relaterte data. DLL-filer er gjenbrukbare - de kan aksesseres av flere applikasjoner samtidig - og lastes dynamisk ved behov. DLL-filer er også et middel for å spare diskplass og arbeidsminne på grunn av deres dynamiske natur. Oppdatering av programvare er også enklere fordi DLL-filer deles mellom flere applikasjoner.

Moderne C/C++-kompilatorer lar utviklere markere eksporterte symboler direkte i kildekoden ved hjelp av __declspec(dllexport), noe som i stor grad reduserer behovet for en separat .def-fil. Imidlertid støttes .def-filer fortsatt av den nåværende MSVC-linkeren (link.exe) og LLVM lld-link, og foretrekkes fortsatt når en stabil, eksplisitt sortert eksporttabell er nødvendig.

Sikkerhet og trygghet

RISIKO: LOW

En moduldefinisjonsfil (.def) er en liten tekstfil for bygging og er trygg å åpne og lese - den kan ikke kjøres. Den eneste praktiske risikoen er å redigere den i et reelt prosjekt: endring eller fjerning av en EXPORTS-oppføring endrer DLL-ens offentlige grensesnitt og kan ødelegge for kallere eller endre eksport-ordinaler, så forstå ABI-konsekvensene før redigering. Som med alle kildekodefiler, stol kun på .def-filer fra prosjektkilder du kontrollerer.

Formatdetaljer

i et nøtteskall
FULLT NAVNModule-Definition Fileogså kjent som Module Definition File, DEF file
UTVIKLERMicrosoft (Windows toolchain; also used by MinGW/GCC, Watcom, Digital Mars)siden Windows / OS/2 development, late 1980s-1990s (16-bit, then Win32)
MIME-TYPEtext/plain
TYPELinker-direktivfil i rent tekstformat (utsagn: LIBRARY, EXPORTS, IMPORTS...)
Denne filendelsen brukes også av…
  • Tibia / OTClient kartfil (.def) - Noen spillverktøy og Tibia-karteditoren brukte .def for kart/spawn-definisjoner - urelatert til linkere.
  • ESRI ArcView / SmartWare datadefinisjon - Eldre database- og GIS-verktøy (SmartWare, ArcView, DataFlex) skrev egne .def-skjema/definisjonsfiler.
  • AniSprite animasjonsdefinisjon / Oberon-2 & Modula-2 DEFINITION-modul - AniSprite lagret sprite-animasjonsdefinisjoner i .def; Modula-2/Oberon bruker .def for en moduls offentlige grensesnitt.

Programmer som åpner DEF-filer

Windows4 apps
Windows Notepad Innebygd «Åpne i» > Notisblokk for en rask gjennomlesing av en liten .def; mangler syntakshjelp.
Notepad Åpen kildekode Høyreklikk > «Edit with Notepad++» for å se/redigere linker-direktivene med linjenummer.
Visual Studio Code Gratis Åpne .def for å lese/redigere EXPORTS-listen som ren tekst. Beste gratis generelle valg.
Visual Studio (MSVC) Freemium Legg .def til i et prosjekt og send den via Linker > Input > Module Definition File (/DEF). Visual Studio åpner den også som tekst for redigering.
macOS1 app
Visual Studio Code Gratis Åpne .def for å lese/redigere EXPORTS-listen som ren tekst. Beste gratis generelle valg.
Linux2 apps
nano / vim Åpen kildekode Rediger i terminalen ved kryssbygging av Windows-DLL-er (MinGW-w64/LLVM bruker .def via -Wl,--def eller /DEF).
Visual Studio Code Gratis Åpne .def for å lese/redigere EXPORTS-listen som ren tekst. Beste gratis generelle valg.

Tekniske detaljer

dyp spesifikasjon
Format-typeLinker-direktivfil i rent tekstformat
MIME-typetext/plain
TegnkodingASCII / ANSI; UTF-8 uten BOM er typisk
Filsignatur (magic bytes)Ingen - identifiseres av nøkkelord som LIBRARY, EXPORTS eller NAME i starten av linjer
Typisk filstørrelseUnder 1 KB til noen få KB (ett eksportert symbol per linje)
Kjerneutsagn: LIBRARY / NAMEDeklarerer modulnavnet som er innebygd i DLL-ens interne hode
Kjerneutsagn: EXPORTSLister opp hvert symbol som skal eksponeres, med valgfrie flagg for ordinal (@N), NONAME og DATA
Ytterligere utsagnIMPORTS, SECTIONS (angi seksjonsattributter), HEAPSIZE, STACKSIZE
Linker-bryter (MSVC)/DEF:filnavn.def sendt til link.exe ved bygging
Støttede verktøykjederMSVC link.exe, MinGW/GCC ld, LLVM lld-link, Watcom linker, Digital Mars linker
ResultatprodukterKontrollerer eksporttabellen til en .dll og importbiblioteket (.lib) som genereres ved siden av
Assosierte operativsystemerWindows (primær); OS/2 (legacy); 16-bit DOS (legacy)
Moderne alternativ__declspec(dllexport) i kildekoden; .def foretrekkes fortsatt for stabile eksport-ordinaler og portabilitet mellom verktøy
Eldre 16-bit nøkkelordCODE- og DATA-segmentattributtutsagn finnes i 16-bit Windows/OS/2 DEF-filer; foreldet under Win32
Komprimering og krypteringIngen - lagres alltid som ukomprimert, ukryptert ren tekst
UtgittWindows / OS/2 development, late 1980s-1990s (16-bit, then Win32)
Siste versjonSame statement syntax used by the current MSVC linker (link.exe) and LLVM lld-link
Spesifikasjonlearn.microsoft.com

DEF-konverteringer

Spørsmål og svar fra fellesskapet

spurt av brukere
Still et raskt spørsmål
Få hjelp fra folk som jobber med DEF-filer. Vær spesifikk - inkluder systemet ditt og programvareversjon.
Ingen konto nødvendig · svar vanligvis innen en dag

Ingen spørsmål ennå - vær den første til å spørre om DEF-filer.

Ofte stilte spørsmål

Hva er en .def-fil i programmering?
En moduldefinisjonsfil: en liste i rent tekstformat med linker-direktiver - hovedsakelig en EXPORTS-seksjon som navngir funksjonene en DLL skal eksponere. Du sender den til linkeren (link /DEF:navn.def) når du bygger en Windows DLL eller EXE.
Hvordan åpner jeg en .def-fil?
Det er ren tekst - åpne den i VS Code, Notepad++ eller redigeringsprogrammet inne i Visual Studio. For å bruke den i et bygg, legg den til i prosjektets linker-innstilling for «Module-Definition File» (/DEF).
Trenger jeg fortsatt en .def-fil hvis jeg bruker __declspec(dllexport)?
Ofte ikke - eksportattributter på kildenivå dekker de fleste tilfeller. Men .def er fortsatt nyttig for stabile eksport-ordinaler, eksport av udekorerte C-navn, eller verktøykjeder og eldre prosjekter som forventer det.
Hvordan lager jeg en .lib fra en .def?
Bruk MSVC LIB-verktøyet: lib /DEF:navn.def /OUT:navn.lib /MACHINE:X64 (eller MinGWs dlltool). Dette bygger et importbibliotek slik at annen kode kan lenke mot DLL-en som .def-filen beskriver.
Hvorfor rapporterer linkeren min manglende eksporter?
Ofte er ikke symbolet oppført i .def-filens EXPORTS-seksjon, navnet er dekorert annerledes enn forventet, eller ordinalen er endret. Sjekk at EXPORTS-listen samsvarer med de faktiske funksjonsnavnene og blir sendt til linkeren.
Min .def-fil er ikke en linker-fil - hva annet bruker .def?
Flere urelaterte programmer gjenbruker .def for sine egne «definisjonsdata» - spillkartdefinisjoner (f.eks. Tibia), database/GIS-skjemaer (SmartWare, ArcView), eller Modula-2/Oberon-modulgrensesnitt. Dette er forskjellige formater som deler filendelsen.

Referanser

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

Utforsk videre

på tvers av databasen

Populære filendelser denne uken

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.MDMarkdown Document
4.BINCD/DVD Disc Image (BIN/CUE)
5.NOMEDIAAndroid No-Media Marker File
6.PARTPartial Download File
7.RPMSGRestricted Permission Message
8.EXEWindows Executable (Portable Executable)
9.AVIFAV1 Image File Format (AVIF)
10.DBSQLite Database File

Relaterte filendelser

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

Gratis filverktøy

En filidentifikator og bildekonvertering i nettleseren - alt kjører på din enhet.

Åpne verktøykassen

Bla i filendelser A-Å