Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在cmake中使用FFTW库? 我有C++代码,使用FFTW 3.3.4。Ubuntu 16.04,cmake版本3.7.2 $ locate *fftw*.so /usr/lib/libsfftw.so /usr/lib/libsfftw_mpi.so /usr/lib/libsfftw_threads.so /usr/lib/libsrfftw.so /usr/lib/libsrfftw_mpi.so /usr/lib/libsrfftw_threads.so /usr/lib/x86_64-linux-gnu/libfftw3.so /usr/lib/x86_64-linux-gnu/libfftw3_mpi.so /usr/lib/x86_64-linux-gnu/libfftw3_omp.so /usr/lib/x86_64-linux-gnu/libfftw3_threads.so /usr/lib/x86_64-linux-gnu/libfftw3f.so /usr/lib/x86_64-linux-gnu/libfftw3f_mpi.so /usr/lib/x86_64-linux-gnu/libfftw3f_omp.so /usr/lib/x86_64-linux-gnu/libfftw3f_threads.so /usr/lib/x86_64-linux-gnu/libfftw3l.so /usr/lib/x86_64-linux-gnu/libfftw3l_mpi.so /usr/lib/x86_64-linux-gnu/libfftw3l_omp.so /usr/lib/x86_64-linux-gnu/libfftw3l_threads.so /usr/lib/x86_64-linux-gnu/libfftw3q.so /usr/lib/x86_64-linux-gnu/libfftw3q_omp.so /usr/lib/x86_64-linux-gnu/libfftw3q_threads.so $ locate fftw3.h /usr/include/fftw3.h_C++_Cmake_Fftw - Fatal编程技术网

如何在cmake中使用FFTW库? 我有C++代码,使用FFTW 3.3.4。Ubuntu 16.04,cmake版本3.7.2 $ locate *fftw*.so /usr/lib/libsfftw.so /usr/lib/libsfftw_mpi.so /usr/lib/libsfftw_threads.so /usr/lib/libsrfftw.so /usr/lib/libsrfftw_mpi.so /usr/lib/libsrfftw_threads.so /usr/lib/x86_64-linux-gnu/libfftw3.so /usr/lib/x86_64-linux-gnu/libfftw3_mpi.so /usr/lib/x86_64-linux-gnu/libfftw3_omp.so /usr/lib/x86_64-linux-gnu/libfftw3_threads.so /usr/lib/x86_64-linux-gnu/libfftw3f.so /usr/lib/x86_64-linux-gnu/libfftw3f_mpi.so /usr/lib/x86_64-linux-gnu/libfftw3f_omp.so /usr/lib/x86_64-linux-gnu/libfftw3f_threads.so /usr/lib/x86_64-linux-gnu/libfftw3l.so /usr/lib/x86_64-linux-gnu/libfftw3l_mpi.so /usr/lib/x86_64-linux-gnu/libfftw3l_omp.so /usr/lib/x86_64-linux-gnu/libfftw3l_threads.so /usr/lib/x86_64-linux-gnu/libfftw3q.so /usr/lib/x86_64-linux-gnu/libfftw3q_omp.so /usr/lib/x86_64-linux-gnu/libfftw3q_threads.so $ locate fftw3.h /usr/include/fftw3.h

如何在cmake中使用FFTW库? 我有C++代码,使用FFTW 3.3.4。Ubuntu 16.04,cmake版本3.7.2 $ locate *fftw*.so /usr/lib/libsfftw.so /usr/lib/libsfftw_mpi.so /usr/lib/libsfftw_threads.so /usr/lib/libsrfftw.so /usr/lib/libsrfftw_mpi.so /usr/lib/libsrfftw_threads.so /usr/lib/x86_64-linux-gnu/libfftw3.so /usr/lib/x86_64-linux-gnu/libfftw3_mpi.so /usr/lib/x86_64-linux-gnu/libfftw3_omp.so /usr/lib/x86_64-linux-gnu/libfftw3_threads.so /usr/lib/x86_64-linux-gnu/libfftw3f.so /usr/lib/x86_64-linux-gnu/libfftw3f_mpi.so /usr/lib/x86_64-linux-gnu/libfftw3f_omp.so /usr/lib/x86_64-linux-gnu/libfftw3f_threads.so /usr/lib/x86_64-linux-gnu/libfftw3l.so /usr/lib/x86_64-linux-gnu/libfftw3l_mpi.so /usr/lib/x86_64-linux-gnu/libfftw3l_omp.so /usr/lib/x86_64-linux-gnu/libfftw3l_threads.so /usr/lib/x86_64-linux-gnu/libfftw3q.so /usr/lib/x86_64-linux-gnu/libfftw3q_omp.so /usr/lib/x86_64-linux-gnu/libfftw3q_threads.so $ locate fftw3.h /usr/include/fftw3.h,c++,cmake,fftw,C++,Cmake,Fftw,我可以这样编译它: g++ main.cpp -o main -lfftw3 但我对cmake有个问题 这是我的CMakeLists.txt: cmake_minimum_required(VERSION 3.5.1) project (main) SET(CMAKE_C_COMPILER gcc) SET(CMAKE_CXX_COMPILER g++) file(GLOB SOURCES "*.cpp") SET(CMAKE_CXX_FLAGS "-lm -lfftw3") SET(CMA

我可以这样编译它:

g++ main.cpp -o main -lfftw3
但我对cmake有个问题

这是我的CMakeLists.txt:

cmake_minimum_required(VERSION 3.5.1)
project (main)
SET(CMAKE_C_COMPILER gcc)
SET(CMAKE_CXX_COMPILER g++)
file(GLOB SOURCES "*.cpp") 
SET(CMAKE_CXX_FLAGS "-lm -lfftw3")
SET(CMAKE_C_FLAGS   "-lm -lfftw3")
INCLUDE_DIRECTORIES(/usr/include)
LINK_DIRECTORIES(/usr/lib/x86_64-linux-gnu)
add_library(fftw3 STATIC IMPORTED)
set(CMAKE_C_OUTPUT_EXTENSION_REPLACE 1) 
set(CMAKE_CXX_OUTPUT_EXTENSION_REPLACE 1)
add_executable(main ${SOURCES})

cmake . && make
给予

undefined reference to `fftw_malloc'

其他fftw函数也是如此。

命令
add\u library
将在项目中创建一个库。我想那不是你想要的

命令:
g++main.cpp-o main-lfftw3
将可执行文件链接到fftw库。在CMake中,您可以通过以下方式复制链接:

add_executable(main ${SOURCES})
target_link_libraries(main fftw3)
文档:
注意:add_可执行文件命令位于链接之前,这一点很重要。

享受FFTW的乐趣:)

它很有效,谢谢。有没有可能用它做同样的工作,谢谢。是否可以对find_包(FFTW)执行相同的操作?实际上,cmake中没有FindFFTW模块。要使用find_package(FFTW),你应该自己写或者在互联网上找到一个好的。我将它保持原样。我将它用于MPI-find_包(MPI),这就是问题的原因。好的;)可能重复的