2011-09-09 86 views
1

此項目編譯在Linux下運行時發現,但在嘗試爲Windows製作VC解決方案時失敗。錯誤是:在Windows上使用CMake時未找到包含的目錄

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文件它不。我收到上面提到的錯誤很多次。該項目的屬性只列出%(AdditionalIncludeDirectories)其他包含目錄(在C/C++>常規下),但我不知道設置的位置或設置的內容。

(如果我省略了任何相關信息,請通知我,我會修改我的問題)。

回答

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上沒有標準。