Я пытаюсь установить FFTW с помощью cmake на мой компьютер с Windows. Я скачал последнюю версию исходных файлов и сначала запустил cmake со следующими параметрами:
mkdir build && cd build
cmake --DBUILD_TESTS=False -DENABLE_FLOAT=On ..
cmake --build . --config Release
Это прекрасно работает как в Visual Studio 2017, так и в 2019 году. Однако, когда я попыталсяскомпилировав код с OpenMP,
cmake --DBUILD_TESTS=False -DENABLE_FLOAT=On -DENABLE_OPENMP=On ..
cmake --build . --config Release
Я получаю целую кучу ошибок компоновки:
[...]
ct.obj : error LNK2001: unresolved external symbol fftwf_ops_zero [C:\Users\jha1\Desktop\fftw-3.3.8.tar\fftw-3.3.8\build\fftw3f_omp.vcxproj]
dft-vrank-geq1.obj : error LNK2001: unresolved external symbol fftwf_ops_zero [C:\Users\jha1\Desktop\fftw-3.3.8.tar\fftw-3.3.8\build\fftw3f_omp.vcxproj]
hc2hc.obj : error LNK2001: unresolved external symbol fftwf_ops_zero [C:\Users\jha1\Desktop\fftw-3.3.8.tar\fftw-3.3.8\build\fftw3f_omp.vcxproj]
[...]
Однако, похоже, cmake смог найти OpenMP на этапе настройки, поэтомуЯ не уверен, что является причиной этой проблемы.
[...]
-- Found OpenMP_C: -openmp (found version "2.0")
-- Found OpenMP_CXX: -openmp (found version "2.0")
-- Found OpenMP: TRUE (found version "2.0")
[...]
Обратите внимание, что это прекрасно работало на моей машине Linux с gcc 9.