2017-09-28 128 views
0

我想用PulseAudio庫編寫一個簡單的程序。一切都很好,當它在編譯GCC(海灣合作委員會-o NAME_ONE name_two.cpp -lpulse-簡單-lpulse),但是當我在我的程序複製到克利翁(cmake的下)它拋出了一個錯誤:PulseAudio不會在cmake上編譯

main.cpp:49: undefined reference to pa_simple_new
main.cpp:50: undefined reference to pa_strerror
main.cpp:78: undefined reference to pa_simple_drain
main.cpp:72: undefined reference to pa_simple_write
main.cpp:73: undefined reference to pa_strerror
main.cpp:79: undefined reference to pa_strerror
main.cpp:85: undefined reference to pa_simple_free

我試過,加個鏈接(-lpulse-簡單-lpulse)到我makeafile.txt這樣的:

add_compile_options(-lpulse-simple -lpulse)

,但是這是行不通的。

如何正確地做到這一點?

回答

0

加入

target_link_libraries("project name" pulse-simple pulse) 

我的代碼後,它仍然occurating錯誤(未找到庫)。我在github上發現了這條線:

find_path(PULSEAUDIO_INCLUDE_DIR 
     NAMES pulse/pulseaudio.h 
     DOC "The PulseAudio include directory" 
     ) 

find_library(PULSEAUDIO_LIBRARY 
     NAMES pulse 
     DOC "The PulseAudio library" 
     ) 

我將它們添加到文件中。一切工作正常,我的cmake文件的副本:

cmake_minimum_required(VERSION 3.8) 
project(Audio) 
set(CMAKE_CXX_STANDARD 11) 
find_path(PULSEAUDIO_INCLUDE_DIR 
     NAMES pulse/pulseaudio.h 
     DOC "The PulseAudio include directory" 
     ) 
find_library(PULSEAUDIO_LIBRARY 
     NAMES pulse 
     DOC "The PulseAudio library" 
     ) 
include_directories(${PULSEAUDIO_INCLUDE_DIRS}) 
set(SOURCE_FILES main.cpp) 
add_executable(Audio ${SOURCE_FILES}) 
target_link_libraries(Audio pulse-simple pulse)