此项目在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)
但我不知道它的设置位置或设置的内容。
(如果我遗漏了任何相关信息,请告诉我,我会修改我的问题。)
答案 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上没有标准。