Is there a way to make C code show a custom error if a header file is not found? I feel this would particuraly useful for trying to compile windows code on linux. For example, instead of "Windows.h not found". the error would be "This code can only compile on windows".
Make a custom error in C if header file not found
89 Views Asked by Jacoblightning3 At
2
There are 2 best solutions below
0
Weijun Zhou
On
To directly address the question in title, in C23 you can detect the validity of a include by __has_include. It is also available as an extension in various compilers (including GCC and Clang) before C23. This question asks about making it available for pre-C23 MSVC but has no answer yet.
You can use it like,
#if __has_include(<windows.h>)
#include <windows.h>
#else
#error "This code can only compile on windows."
#endif
Related Questions in C
- How to call a C language function from x86 assembly code?
- What does: "char *argv[]" mean?
- User input sanitization program, which takes a specific amount of arguments and passes the execution to a bash script
- How to crop a BMP image in half using C
- How can I get the difference in minutes between two dates and hours?
- Why will this code compile although it defines two variables with the same name?
- Compiling eBPF program in Docker fails due to missing '__u64' type
- Why can't I use the file pointer after the first read attempt fails?
- #include Header files in C with definition too
- OpenCV2 on CLion
- What is causing the store latency in this program?
- How to refer to the filepath of test data in test sourcecode?
- 9 Digit Addresses in Hexadecimal System in MacOS
- My server TCP doesn't receive messages from the client in C
- Printing the characters obtained from the array s using printf?
Related Questions in LINUX
- Is there some way to use printf to print a horizontal list of decrementing hex digits in NASM assembly on Linux
- Why does Hugo generate different taxonomy-related HTML on different OS's?
- Writes in io_uring do not advance the file offset
- Why `set -o pipefail` gives different output even though the pipe is not failing
- what really controls the permissions: UID or eUID?
- Compiling eBPF program in Docker fails due to missing '__u64' type
- Docker container unable to make HTTPS requests to external API
- Whow to use callback_query_handler in Python 3.10
- Create kea runtime directory at startup in Yocto image
- Problem on CPU scheduling algorithms in OS
- How to copy files into the singularity sandbox?
- Android kernel error: undefined reference to `get_hw_version_platform'
- Is there a need for BPF Linux namespace?
- Error when trying to execute a binary compiled in a Kali Linux machine on an Ubuntu system
- Issue with launching application after updating ElectronJs to version 28.0.0 on Windows and Linux
Related Questions in WINDOWS
- how to play a sounds in c# forms?
- Echo behaviour of Microsoft Windows Telnet Client
- Getting error while running spark-shell on my system; pyspark is running fine
- DirectX 9 With No SDK Installed - How To Translate a D3DMATRIX?
- Gradle 8.7 cannot find installed JDK 22 in IntelliJ
- 'IOException: The cloud file provider is not running', when trying to delete 'cloud' folder
- Cannot load modules/mod_dav_svn.so into server
- Issue with launching application after updating ElectronJs to version 28.0.0 on Windows and Linux
- 32-bit applications do not display some files in Windows 10
- 'bun' is not recognized as an internal or external command
- mkssecreenshotmgr taking a screenshot
- Next js installation in windows 7 os
- Can't resize a partition using Mini Tool?
- Is there any way to set a printer as default according with Active Directory Policy Security Group and PC hostname?
- Electron Printing not working on Windows (Works on Mac)
Related Questions in ERROR-HANDLING
- Simple movie API request not showing up in the console log
- Sends a personalised error message from the back-end to the front-end with Nuxt-auth
- Creating Chrome extension, but display text from Javascript file is not showing up on HTML's display. The HTML is the InnerHTML of another HTML file
- How do I fix the response: Error in contrasts in R
- new to express & js and trying to understand next
- How to implement a Higher Order Component using TypeScript?
- symbol not found in flat namespace '__PyTrash_begin
- Handling multiple errors in Bison parser
- getting error 422 (Unprocessable entity) in a api-integration webapp
- Handling errors in MSAL Redirect - reactjs login with microsoft sso
- Node.JS getting error while building EXE with PKG module
- How do I display Supabase AuthApiError from server-side in client -side
- VBA dynamic feed multiple files into current one but error of "Run-rime error 7 out of memory" occurs
- How do I fix subscript out of bound error for my interaction matrices?
- pyinstaller' is not recognized as an internal or external command, operable program or batch file
Related Questions in HEADER-FILES
- C++ - Unknown type name
- Unable to install old gcc version on Mac using homebrew. Error in make possibly due to incorrect header file version
- External macro definition in header
- How to create your own C++ Library and share it with others so that everyone can use it?
- White space to the right side of my header/navbar
- How C ++ header files hold the cpp respective file definitions if they do not include them on themselves?
- Trying to render texture but I can't pass the variable to draw function
- Question about header files and functions in separate files in C++
- Visual Studio Additional Include Directories
- Initializing a large map in header cause g++ crashes
- Umbrella-Header uses wrong import syntax after `pod install`
- The game module "project name "could not be loaded. There may be an operating system error or module may not be properly setup
- Why does it throws an error while putting functions into header in VSCode but not GCC?
- Why net/if.h before ifaddrs.h?
- Error about the Redefinition of a struct and conflicting types for a function
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 # Hahtags
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?
You can check the OS and use the preprocessor directive
#errorif it doesn't match:Or if you prefer, in a
Makefile: