Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.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
在Windows上使用CMake时找不到包含的目录_C_Visual Studio 2010_Cross Platform_Cmake - Fatal编程技术网

在Windows上使用CMake时找不到包含的目录

在Windows上使用CMake时找不到包含的目录,c,visual-studio-2010,cross-platform,cmake,C,Visual Studio 2010,Cross Platform,Cmake,该项目在Linux下运行时编译find,但在我尝试为Windows制作VC解决方案时失败。错误是: e:\src\audio\audio.h(5): fatal error C1083: Cannot open include file: 'portaudio.h': No such file or directory 我包括包含portaudio.h的库,如下所示: find_package(portaudio REQUIRED) 可以使用文件Findportaudio.cmake找到它,

该项目在Linux下运行时编译find,但在我尝试为Windows制作VC解决方案时失败。错误是:

e:\src\audio\audio.h(5): fatal error C1083: Cannot open include file: 'portaudio.h': No such file or directory
我包括包含
portaudio.h
的库,如下所示:

find_package(portaudio REQUIRED)
可以使用文件
Findportaudio.cmake
找到它,该文件看起来指向正确的目录:

include(LibFindMacros)
find_path(Portaudio_INCLUDE_DIR NAMES portaudio.h PATHS ../src/extern/portaudio/include)
find_library(Portaudio_LIBRARY NAMES portaudio PATHS ../src/extern/portaudio/lib)
set(Portaudio_PROCESS_INCLUDES Pulseaudio_INCLUDE_DIR)
set(Portaudio_PROCESS_LIBS Pulseaudio_LIBRARY)
libfind_process(Portaudio)
当我在Linux下运行它时,这一切都很好,但是当我生成make文件时,它就不起作用了。我多次遇到上面提到的错误。该项目的属性只列出了附加Include目录(在C/C++>General下)的
%(AdditionalIncludeDirectories)
,但我不知道设置在哪里或设置到什么位置


(如果我遗漏了任何相关信息,请告诉我,我会修改我的问题)。

通常我会对大多数软件包执行以下操作:

FIND_PACKAGE( GDCM REQUIRED )
INCLUDE_DIRECTORIES( ${GDCM_INCLUDE_DIRS} )
LINK_DIRECTORIES( ${GDCM_LIBRARY_DIRS} )
就你的情况来看

FIND_PACKAGE( portaudio REQUIRED )
INCLUDE_DIRECTORIES( ${Portaudio_INCLUDE_DIR} )
LINK_DIRECTORIES( ${Portaudio_LIBRARY} )
会有用的


我相信您最初的命令可以在linux上运行,因为它在windows上没有标准的文件包时,会选择标准的include和library文件夹。

通常,我会对大多数软件包执行以下操作:

FIND_PACKAGE( GDCM REQUIRED )
INCLUDE_DIRECTORIES( ${GDCM_INCLUDE_DIRS} )
LINK_DIRECTORIES( ${GDCM_LIBRARY_DIRS} )
就你的情况来看

FIND_PACKAGE( portaudio REQUIRED )
INCLUDE_DIRECTORIES( ${Portaudio_INCLUDE_DIR} )
LINK_DIRECTORIES( ${Portaudio_LIBRARY} )
会有用的

我相信您最初的命令可以在linux上运行,因为它是在windows上没有标准的情况下获取标准的include和library文件夹