-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Details on the preprocessor:
- https://gcc.gnu.org/onlinedocs/cpp/Initial-processing.html#Initial-processing
- you can see here that #pragma's arent't removed, there needed becausse the compiler (or the linker for some pragma's)
needs to act on them - examples of preprocessing on GCC, CLANG and MSVC respectively https://godbolt.org/z/s6PG7TTjd
Spelling:
- 'bare makefile' not 'bear makefile' ;)
- check the text for more
Linking:
- Linking is surprising complicated, but in essence a bunch of object files are combined into one.
- the result is usually a library or executable
- there are two kinds of .lib files on windows,
- static libraries (also called standard libraries)
- import libraries, a sort of linker stubs, this is a .lib file that belongs next to a .dll, it contains information on what the dll contains and how it is loaded.
reference: https://docs.microsoft.com/en-us/cpp/build/reference/lib-output-files?view=msvc-170
as far as I know, you can not tell from looking at a .lib file which one of these it is, but static libraries are almost always bigger compared to import libraries.
- .elf files: you say Arm target can't directly interpret .elf files, while it may look like that, its not actually that the ARM cpu "can't do this", but its usually impractical,
because the target would need to have an ELF reader. Theoretically, you could make a system that boots, reads .elf files from some media (like an sdcard), reads it and interprets it putting
the right pieces in memory, and execute it.
Deze talk https://www.youtube.com/watch?v=4V9QWHjRPMc beschrijft wat er allemaal moet gebeuren om van 'Hello world' naar een executable to komen.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request