According to gcc manual, the -E option only preprocesses the .c source file, without running the compiler and just giving an input file (.i). But what does the -E stand for?
Related Questions in GCC
- File refuses to compile std::erase() even if using -std=g++23
- the difference between two style of inline ASM
- Why veneer code generated by gcc for cortex-m0 seems 8-byte aligned?
- How to compile the Linux kernel with -O0 for more detailed debug?
- GMP Windows installation "configure: error: could not find a working compiler"
- Unable to run get .exe file from assembly NASM
- Problem with compiling c++ project that is running python code using Python.h -> undefined reference
- How to use a newer linker and glibc in a Kotlin/Native project?
- "Config.guess failed to determine the host type" when trying build binutils-2.7 with Cygwin
- Trying to compile GCC returns a bunch of errors
- Compiling with gcc fno-common option causes performance degradation
- On cygwin I get errors containing -lintl and -liconv when running gcc
- Constant function pointer optimization
- How to obtain mingw-w64 version 9.3.0 or older for MSYS2?
- How to fix this error in terminal while writing hello world code in VS Code on C?
Related Questions in COMMAND-LINE-ARGUMENTS
- Passing arguments to ENTRYPOINT causes the container to start and run indefinitely
- Parse command line arguments and write useful usage message without additional code
- explian the line command argument
- Is there a way to pass Today's date as a command line argument to Excel from a Windows Task Scheduler Job
- Python : Argparse take default value from json file if not passed in command line
- Can input arguments be passed to an httpyac file?
- How do I get the atoi function to work in Assembly?
- How can I clean up this C++ snippet for command line arguments?
- Write a shell script or Python code with default arguments for git-filter-repo
- how to add Azure ci/cd pipeline script in yml file to run integration tests based on a command line flag - "test",
- Zero argument count in main()?
- To implement a search program in C program using system calls for files and directories
- Sqlcmd: The -W and the -y/-Y options are mutually exclusive
- Win64 NASM: Segfault in CommandLineArgvW
- How to use boolean flag with cxxopts and command line?
Related Questions in NAMING
- How do I name a macro button by means of referencing a cell within the spreadsheet e.g. cell B1 will be the name of the spreadsheet
- Associated type (type parameter) naming convention
- naming urls : good practices
- How to register celery class based task with a custom name in 5.x?
- REST APIs to demonstrate borrowed books and users from library
- Which url name should be used for api performing the membership withdrawal function
- Variable or pattern name for method arguments as both input and output parameter
- Error when attempting to set a Worksheet name from a user defined list
- Conventions for Swift protocols
- Naming classes on a framework that present multiple platforms
- Where ReSharper naming rule is defined which prohibits using the prefix "Default" in type names, property names, constant names...?
- how to name a Master on a raspberry
- What is the difference between Resolver and Service in java
- How do I name controllers which are related to multiple entities in REST?
- Name of the algorithm for choosing an element from a list based on its "width"
Related Questions in CC
- I am using Email extension plugin with Hudson. There is only TO list option available with the plugin. Is there any way I can add CC options?
- Same versions of Linux, CC, LD have different link order rules
- How do you get the SBCL foreign function interface example from the SBCL User Manual to work?
- cc compiler can't find link library in provided path
- How does a C compiler parse code like `arr[]`?
- configure: error: C compiler cannot create executables ERROR on FreeBSD 14.0-RELEASE
- Linking with 'cc' failed (when trying to compile a simple 'hello_world' for Android terminal)
- configuring petsc with --CC compiler (mopish) on silicon Apple Mac M1 MAX
- How to compile Rust from Linux to Macos?
- The prelaunchtask c/c++ :gcc.exe build active file terminated with exit code -1
- How can I completely remove rust from my computer?
- Machine-readable metadata autogenerated by Creative Commons (CC) not W3C-compliant
- Linker error when cross compiling for aarch-64 (linker command failed with exit code 1)
- How to run mediapipe face_effect demo?
- Golang & CGO – link to a DLL dynamic library
Related Questions in MNEMONICS
- GDB outputs arm mnemonics
- Is VGF2P8AFFINEINVQB the longest x86 instruction mnemonic?
- Convert private key to string using ether.rs
- How can I use Hedera JS SDK to generate a set of ECDSA key-pairs based on a BIP-39 seed phrase and a custom derivation path?
- how much addresses does cryptocurrency wallets checks via derivation paths?
- error "fromMnemonic()"Create ether wallet
- permutations with words at set positions
- Cryptocurrency wallet mnemonic seed phrase
- GTK4 doesn't show mnemonics underline in a button
- BIP39 mnemonic from seed
- Trying to solve a number to mnemonics problem using recursion
- How to use github's kadena-io/cardano-crypto.js mnemonic in react native wallet
- What does gcc -E option stand for?
- I want to get the address from mnemonic with the proper derivation path
- Why left shift instruction has two names (SAL and SHL) in x86-64 ISA?
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Popular Tags
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Summary
This option was introduced on compilers much earlier than GCC, and GCC used the same naming for compatibility.
My best guess from the historical evidence is that
-Estands for "expand macros".The authors of those earlier compilers couldn't call it
-Pbecause there was already a-Poption, which also ran only the preprocessor, but wrote the output to.ifiles instead of to standard output.-pwas also taken.Over time,
-Ebecame preferred to-P, and when GCC was written, it supported only-Eand not-P.Despite being supposedly off topic for Stack Overflow, I think a bit of history will help explain how this option got its name.
gcc(1)inherited its basic command line options from much earlier Unix C compilers. Many versions can be found in the Unix Tree archive.It looks like the first version that supported
-Ewas Research Unix V7, circa 1979:cc(1)source, man page source. There was also a-Poption that also just ran the preprocessor, but sent the result to a filefoo.iinstead of to standard output. V6 had already supported-Pbut not-E:cc(1)source, man page source.This at least answers why
-Ewasn't named-Pinstead: because-Pwas already in use. (And-pwas also taken, it was used to request profiling.) The only hint I found as to why-Ewas chosen is that the corresponding flag variable in the source code is namedexflag. I would hazard a guess that this stands for "expand", as what-Edoes is basically to expand macros.It appears that
-Pwas eventually deprecated in favor of-E. V8 still supported it, but omitted it from the man page. V10 (circa 1989) included two versions of the compiler,ccwhich compiled traditional C, andlccfor ANSI C. The man page says thatccsupports-Pwith the preprocessor behavior, but for lcc,-Pdid something else ("write declarations for all defined globals on standard error"). They both supported-E. On other fronts, 32V and BSD, at least initially, supported both, but-Pwould emit a warning that it was obsolete and-Eshould be used instead.It looks like
gcc, from its earliest version, only supported-Eand not-P. Since then, a-Poption has been introduced, but it does something else ("inhibit generation of linemarkers").