【问题标题】:PulseAudio won't compile on cmake [duplicate]PulseAudio 无法在 cmake 上编译 [重复]
【发布时间】:2017-09-28 12:06:45
【问题描述】:

我正在尝试使用 PulseAudio 库编写一个简单的程序。在 gcc 下编译时一切正常(gcc -o name_one name_two.cpp -lpulse-simple -lpulse),但是当我将程序复制到 cLion(在 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-simple -lpulse) 添加到我的 makeafile.txt 中,如下所示:

add_compile_options(-lpulse-simple -lpulse)

但这不起作用。

如何正确操作?

【问题讨论】:

    标签: c++11 gcc cmake pulseaudio


    【解决方案1】:

    添加后

    target_link_libraries("project name" pulse-simple pulse)
    

    对于我的代码,它仍然出现错误(未找到库)。我在 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多