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?
What does gcc -E option stand for?
771 Views Asked by Nicolas F At
1
There are 1 best solutions below
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?
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)
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?
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").