I have a CMake project that uses OpenMP and works with linux. When I went to compile it on my Windows machine, it looked like CMake was having trouble finding openmp flags for mingw gcc.
I decided to try a smaller test case and just compile main_openmp.c
#include <omp.h> #include <stdio.h> int main(int argc, char* argv[]) { int id; #pragma omp parallel private(id) { id = omp_get_thread_num(); printf("%d: Hello World!\n", id); } return 0; }
Then when I try to compile
gcc -o OpenMPTest2 main_testomp.c -fopenmp
I get
>>> gcc -o OpenMPTest2 main_testomp.c -fopenmp c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -lpthread collect2.exe: error: ld returned 1 exit status
I tried to find a solution online and tried the options -lgomp, -lpthreadgc2 and -lpthreadvc2 without any improvement.
I searched the C: \ MinGw directory recursively for any file names containing lpthread and got this:
C:\MinGW\bin\pthreadgc2.dll C:\MinGW\bin\pthreadgce2.dll C:\MinGW\var\cache\mingw-get\packages\pthreads-w32-2.9.1-1-mingw32-dll.tar.lzma C:\MinGW\var\lib\mingw-get\data\mingw32-pthreads-w32.xml
I am not sure if I am missing a flag, package or what I am doing wrong. For good measure, here is the output of gcc -v
Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/4.8.1/lto-wrapper.exe Target: mingw32 Configured with: ../gcc-4.8.1/configure --prefix=/mingw --host=mingw32 --build=mingw32 --without-pic --enable-shared --enable-static --with-gnu-ld --enable-lto --enable-libssp --disable-multilib --ena ble-languages=c,c++,fortran,objc,obj-c++,ada --disable-sjlj-exceptions --with-dwarf2 --disable-win32 -registry --enable-libstdcxx-debug --enable-version-specific-runtime-libs --with-gmp=/usr/src/pkg/gm p-5.1.2-1-mingw32-src/bld --with-mpc=/usr/src/pkg/mpc-1.0.1-1-mingw32-src/bld --with-mpfr= --with-sy stem-zlib --with-gnu-as --enable-decimal-float=yes --enable-libgomp --enable-threads --with-libiconv -prefix=/mingw32 --with-libintl-prefix=/mingw --disable-bootstrap LDFLAGS=-s CFLAGS=-D_USE_32BIT_TIM E_T Thread model: win32 gcc version 4.8.1 (GCC)
Any idea what's wrong?
c ++ gcc windows openmp mingw
Erotemic
source share