У меня есть проблемы с кросс-компиляционной программой на C++, которая использует библиотеку openMP. Я использую Linux Ubuntu 12.04 LTS. Я хочу получить исполняемый файл, запускаемый в Windows.OMP Cross compilation с x86_64-w64-mingw32-g ++
У меня нет никаких проблем с компиляцией моей программы с OMP с регулярной командой г ++:
g++ a.cpp b.cpp -o OMPres -pg -O3 -I./CBLAS/include -L./ -lcblas
Кроме того, когда я пытаюсь crosscompilation без OMP, все работает прекрасно:
x86_64-w64-mingw32-g++ a.cpp b.cpp -O3 -I./CBLAS/include ./CBLAS/cblas_WIN64.a ./BLAS/blas_WIN64.a -o res.exe -l gfortran -static
Но когда я пытаюсь для перекрестного копирования его с помощью OMP, используя следующую команду:
x86_64-w64-mingw32-g++ a.cpp b.cpp -O3 -I./CBLAS/include ./CBLAS/cblas_WIN64.a ./BLAS/blas_WIN64.a -o OMPres.exe -l gfortran -static -fopenmp
Я получаю эту ошибку: a.cpp: 41: 17: фатальная ошибка: omp.h: Нет такого файла или каталога компиляция завершена.
Я нашел, где файл omp.h находится на моем диске, и добавил путь к команде. После его выполнения:
x86_64-w64-mingw32-g++ a.cpp b.cpp -O3 -I./CBLAS/include -I/usr/lib/gcc/x86_64-linux-gnu/4.6/include ./CBLAS/cblas_WIN64.a ./BLAS/blas_WIN64.a -o OMPres.exe -l gfortran -static -fopenmp
я получил другую ошибку: x86_64-w64-mingw32-г ++: Ошибка: libgomp.spec: Нет такого файла или каталога
Как я и есть этот файл на диске Я попытался скопировать его в разных местах и, наконец, работал, когда я скопировал его прямо в каталог, где происходит компиляция. Тогда он произвел еще одну ошибку:
/USR/бен/x86_64-w64-mingw32-л.д.: не может найти -lgomp /USR/бен/x86_64-W64-mingw32-LD: не может найти -lrt collect2: Л.Д. вернулся 1 статус выхода
У меня нет четкого представления о том, как работают компиляторы. Я попытался обновить все компиляторы mingw-w64, которые я смог найти с помощью поиска apt-cache, но ничего не помогло. Я понятия не имею, что еще я могу делать :(.
Спасибо! До сих пор это работало отлично. Я должен включить также дополнительную библиотеку, и я надеюсь, что она будет работать так же хорошо :) –