I have installed msys2/mingw64 because I need the g++ compiler. Now, I want to compile some c++ oce which requires openblas. I have installed the package using pacman -S mingw-w64-x86_64-openblas
. However, compiling the code fails with
fatal error: cblas.h: No such file or directory
Clearly, the include path does not contain the headers from openblas which are located at C:\msys64\mings64\include\openblas
. This is easy to fix by passing -I<include path>
as an additional argument to g++
.
Now, I was wondering whether there is an automated way to include include files/headers of installed packages in the g++
include path. The same problem also holds for libraries.
For example, pacman
might be able to atomatically append these paths onto some environment variable which g++
checks.
The standard way to get compilation and linking options for a library on MSYS2 and other Unix-like systems is to run this command:
If you're just compiling, use
--cflags
by itself.If you're just linking, use
--libs
by itself.Here's an example Bash command you could use to compile a single-file program: