मेरे पास एक सीएमके परियोजना है जो ओपनएमपी का उपयोग कर रही है और लिनक्स पर काम करती है। जब मैं इसे अपनी विंडोज मशीन पर संकलित करने गया, तो ऐसा लगता था कि सीएमके को मिंगव के जीसीसी के लिए ओपनएमएम झंडे खोजने में परेशानी हो रही थी।mingw के साथ विंडोज़ पर openmp का उपयोग करना। नहीं मिल सकता -lpthread
मैं जब मैं
gcc -o OpenMPTest2 main_testomp.c -fopenmp
संकलित करने के लिए मैं
>>> 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
मैं करने का प्रयास किया पाने की कोशिश एक छोटे परीक्षण का मामला 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;
}
फिर कोशिश करने के लिए और बस संकलन का फैसला किया समाधान को ऑनलाइन ढूंढें और बिना सुधार के -lgomp, -lpthreadgc2, और -lpthreadvc2 के रूपों का प्रयास किया।
मैं अपने सी की खोज: \ Mingw किसी भी lpthread युक्त फ़ाइल नामों के लिए पुनरावर्ती निर्देशिका और मिल गया इस:
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
मुझे यकीन है कि अगर मैं एक ध्वज है, या एक पैकेज, या क्या मैं याद कर रहा हूँ नहीं कर रहा हूँ मैं गलत कर रहा हूँ अच्छे उपाय के लिए यहां 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)
कोई विचार क्या गलत है?
find_package(OpenMP REQUIRED)
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
आप एक त्रुटि जब आप cmake कॉन्फ़िगर कर रहे हैं मिलता है, तो मतलब है कि आप आवश्यक पुस्तकालयों की जरूरत नहीं है, या कम से कम cmake कर सकते हैं:
मेरे पास मेरे CMakeLists.txt में वह पंक्ति है, मुझे यकीन नहीं है कि यह पैकेज क्यों नहीं मिलेगा। हालांकि मैं mingw-w64 एक लुक दूंगा। मेरे पास सी है: \ MinGW \ bin \ libgomp-1.dll। जब मैं C: \ MinGW में फाइल सिस्टम की खोज करता हूं, तो मुझे कुछ भी दिखाई नहीं देता है, और मुझे मिंगव-इन विंडो में ऐसा कुछ भी दिखाई नहीं देता है। मैं इसे कैसे स्थापित करूं? – Erotemic
@ एरोटेमिक मैंने अपना जवाब संपादित किया - क्या इससे मदद मिलती है? – Patrick
मैंने टूलचेन की कोशिश की, और cmake_find_root_path सेट करने, दोनों विचार विफल हुए। पथ विंडोज शैली पथ का उपयोग करना चाहिए और उद्धरण में सही नहीं होना चाहिए? – Erotemic