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

时间:2011-09-09 05:42:59

标签: c visual-studio-2010 cross-platform cmake

此项目在Linux下运行时编译查找,但在我尝试为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文件时却没有。我上面提到了很多错误。项目的属性仅为其他包含目录(在C / C ++>常规下)列出%(AdditionalIncludeDirectories)但我不知道它的设置位置或设置的内容。

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

1 个答案:

答案 0 :(得分:4)

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

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上没有标准。