How can I include a header file without writing #include "header.h"
for example using cmakelists.txt?
For example without writing #define DEFINE
I defined it from cmakelists with the command add_definitions(-DDEFINE)
Can I do the similar thing?
# | User | Rating |
---|---|---|
1 | tourist | 3985 |
2 | jiangly | 3814 |
3 | jqdai0815 | 3682 |
4 | Benq | 3529 |
5 | orzdevinwang | 3526 |
6 | ksun48 | 3517 |
7 | Radewoosh | 3410 |
8 | hos.lyric | 3399 |
9 | ecnerwala | 3392 |
9 | Um_nik | 3392 |
# | User | Contrib. |
---|---|---|
1 | cry | 169 |
2 | maomao90 | 162 |
2 | Um_nik | 162 |
4 | atcoder_official | 161 |
5 | djm03178 | 158 |
6 | -is-this-fft- | 157 |
7 | adamant | 155 |
8 | awoo | 154 |
8 | Dominater069 | 154 |
10 | luogu_official | 150 |
How can I include a header file without writing #include "header.h"
for example using cmakelists.txt?
For example without writing #define DEFINE
I defined it from cmakelists with the command add_definitions(-DDEFINE)
Can I do the similar thing?
Name |
---|
Depends on the compiler. E.g. GCC has
-include header.h
key, see docs.You can use it in
CMakeLists.txt
viaadd_compile_options
, e.g.add_compile_options(-include header.h)
. Note that this will includeheader.h
in each translation unit ("source file") for all targets.This does not work for me. I tried both Cygwin and MinGW.
Make sure
add_compile_options
is specified beforeadd_executable
, like this.Alternatively, use
target_compile_options(main PRIVATE -include pre-main.inc.cpp)
afteradd_executable(main main.cpp)
.If I write it before
add_executable
it saysheader.h: No such file or directory
. My Cmake looks like this:"untitled1" is the project name.
So did you try to think why it says 'No such file or directory' if the file exists? Maybe it doesn't know where to find the file? Try specifying the absolute path.
Thank you purplesyringa, it helped. Also thanks to yeputons.
bump