简体   繁体   中英

Header paths mismatch when migrating to MSYS2/MinGW64

I am porting my c/cpp project from gcc/Linux to Windows using MSYS2/MinGW64 environment. Two of the headers were not found where expected and I had to modify include in the way bellow in order to achieve succesful compilation.

#ifdef __MINGW64__
#include <ncurses/ncurses.h>
#else
#include <ncurses.h> 
#endif

and

#ifdef __MINGW64__
#include <json/json.h>
#else
#include <jsoncpp/json/json.h>
#endif

However I feel this solution is not correct (or is it?). I think I probably missed something obvious, may be some configuration step. What can I do better?

BTW: I use simple make file which calls g++ with the same set of parameters in Linux and Windows and I do not specify any paths there.

Thank you in advance!

For jsoncpp, you can run this command on both Linux and MSYS2 to get the recommended compiler flags:

pkg-config --cflags jsoncpp

If you pass those flags to the compiler, then I think a simple #include <ncurses.h> should work on both platforms.

That does not work for ncurses, unfortunately, because there is no configuration file for ncurses /mingw64/lib/pkgconfig/ in MSYS2.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM