avs-device-sdk icon indicating copy to clipboard operation
avs-device-sdk copied to clipboard

build error for libLibSampleApp.dylib

Open xhlinux opened this issue 2 years ago • 3 comments

IMPORTANT: Before you create an issue, please take a look at our Issue Reporting Guide.

Briefly summarize your issue:

build error make SampleApp

build part: $HOME/Documents/avs/source/avs-device-sdk \ -DGSTREAMER_MEDIA_PLAYER=ON \ -DCURL_LIBRARY=/usr/local/opt/curl/lib/libcurl.dylib \ -DCURL_INCLUDE_DIR=/usr/local/opt/curl/include \ -DPORTAUDIO=ON \ -DPKCS11=OFF \ -DPORTAUDIO_LIB_PATH=$HOME/Documents/avs/third-party/portaudio/lib/.libs/libportaudio.a \ -DPORTAUDIO_INCLUDE_DIR=$HOME/Documents/avs/third-party/portaudio/include \ -DCMAKE_BUILD_TYPE=DEBUG

[ 95%] Linking CXX shared library libLibSampleApp.dylib ld: warning: ignoring file /Users/xiaoheng/Documents/avs/third-party/portaudio/lib/.libs/libportaudio.a, building for macOS-x86_64 but attempting to link with file built for macOS-x86_64 Undefined symbols for architecture x86_64: "_Pa_CloseStream", referenced from: alexaClientSDK::sampleApp::PortAudioMicrophoneWrapper::~PortAudioMicrophoneWrapper() in PortAudioMicrophoneWrapper.cpp.o "_Pa_GetDefaultInputDevice", referenced from: alexaClientSDK::sampleApp::PortAudioMicrophoneWrapper::initialize() in PortAudioMicrophoneWrapper.cpp.o "_Pa_Initialize", referenced from: alexaClientSDK::sampleApp::PortAudioMicrophoneWrapper::initialize() in PortAudioMicrophoneWrapper.cpp.o "_Pa_OpenDefaultStream", referenced from: alexaClientSDK::sampleApp::PortAudioMicrophoneWrapper::initialize() in PortAudioMicrophoneWrapper.cpp.o "_Pa_OpenStream", referenced from: alexaClientSDK::sampleApp::PortAudioMicrophoneWrapper::initialize() in PortAudioMicrophoneWrapper.cpp.o "_Pa_StartStream", referenced from: alexaClientSDK::sampleApp::PortAudioMicrophoneWrapper::startStreamingMicrophoneData() in PortAudioMicrophoneWrapper.cpp.o "_Pa_StopStream", referenced from: alexaClientSDK::sampleApp::PortAudioMicrophoneWrapper::~PortAudioMicrophoneWrapper() in PortAudioMicrophoneWrapper.cpp.o alexaClientSDK::sampleApp::PortAudioMicrophoneWrapper::stopStreamingMicrophoneData() in PortAudioMicrophoneWrapper.cpp.o "_Pa_Terminate", referenced from: alexaClientSDK::sampleApp::PortAudioMicrophoneWrapper::~PortAudioMicrophoneWrapper() in PortAudioMicrophoneWrapper.cpp.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[3]: *** [SampleApp/src/libLibSampleApp.dylib] Error 1 make[2]: *** [SampleApp/src/CMakeFiles/LibSampleApp.dir/all] Error 2 make[1]: *** [SampleApp/src/CMakeFiles/SampleApp.dir/rule] Error 2 make: *** [SampleApp] Error 2


libportaudio.2.dylib libportaudio.a libportaudio.exp libportaudio.lai ➜ .libs lipo -info libportaudio.a Non-fat file: libportaudio.a is architecture: x86_64

What is the expected behavior?

What behavior are you observing?

Provide the steps to reproduce the issue, if applicable:

Tell us about your environment:

What version of the AVS Device SDK are you using?

  <1.26.0>

Tell us what hardware you're using:

  • [x] Desktop / Laptop. MacBook Pro(intel)
  • [ ] Raspberry Pi
  • [ ] Other - tell us more:

Tell us about your OS (Type & version):

  • [ ] Linux
  • [x] MacOS 12.3.1
  • [ ] Raspbian Stretch
  • [ ] Raspbian Jessy
  • [ ] Other - tell us more:

xhlinux avatar Apr 28 '22 05:04 xhlinux

Hi,

Can you please link against libportaudio.dylib inside .libs instead?

Additionally, can you please try building with the latest version of PortAudio found here? http://files.portaudio.com/download.html

It should be pa_stable_v190700_20210406.tgz.

kjkh avatar Apr 30 '22 01:04 kjkh

I have build with pa_stable_v190700_20210406.tgz, the issue is same.

xhlinux avatar May 27 '22 14:05 xhlinux

I am facing the same issue as well. Here is the gist of the issue (also I installed PortAudio as mentioned here : https://developer.amazon.com/en-US/docs/alexa/avs-device-sdk/mac-os.html i.e. brew install portaudio, in my case however it reports an issue for arm64 based architecture despite https://formulae.brew.sh/formula/portaudio showing that portaudio builds for Apple Silicon) :

Executing :

file libportaudio.dylib yields which means that I do have requisite symbols

libportaudio.dylib: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit dynamically linked shared library x86_64Mach-O 64-bit dynamically linked shared library x86_64] [arm64:Mach-O 64-bit dynamically linked shared library arm64Mach-O 64-bit dynamically linked shared library arm64]
libportaudio.dylib (for architecture x86_64):	Mach-O 64-bit dynamically linked shared library x86_64
libportaudio.dylib (for architecture arm64):	Mach-O 64-bit dynamically linked shared library arm64
[ 96%] Linking CXX shared library libDefaultClient.dylib
[ 96%] Built target DefaultClient
[ 96%] Building CXX object MagentaApp/src/CMakeFiles/LibSampleApp.dir/ConsolePrinter.cpp.o
[ 97%] Building CXX object MagentaApp/src/CMakeFiles/LibSampleApp.dir/CustomConnectionObserver.cpp.o
[ 97%] Building CXX object MagentaApp/src/CMakeFiles/LibSampleApp.dir/CustomMessageObserver.cpp.o
[ 97%] Building CXX object MagentaApp/src/CMakeFiles/LibSampleApp.dir/InteractionManager.cpp.o
[ 97%] Building CXX object MagentaApp/src/CMakeFiles/LibSampleApp.dir/ExternalCapabilitiesBuilder.cpp.o
[ 97%] Building CXX object MagentaApp/src/CMakeFiles/LibSampleApp.dir/LocaleAssetsManager.cpp.o
[ 97%] Building CXX object MagentaApp/src/CMakeFiles/LibSampleApp.dir/KeywordObserver.cpp.o
[ 97%] Building CXX object MagentaApp/src/CMakeFiles/LibSampleApp.dir/GuiRenderer.cpp.o
[ 98%] Building CXX object MagentaApp/src/CMakeFiles/LibSampleApp.dir/UserInputManager.cpp.o
[ 98%] Building CXX object MagentaApp/src/CMakeFiles/LibSampleApp.dir/MagentaAppExecutor.cpp.o
[ 98%] Building CXX object MagentaApp/src/CMakeFiles/LibSampleApp.dir/UIManager.cpp.o
[ 98%] Building CXX object MagentaApp/src/CMakeFiles/LibSampleApp.dir/SampleApplicationComponent.cpp.o
[ 98%] Building CXX object MagentaApp/src/CMakeFiles/LibSampleApp.dir/SampleApplication.cpp.o
[ 98%] Building CXX object MagentaApp/src/CMakeFiles/LibSampleApp.dir/SampleEqualizerModeController.cpp.o
[100%] Building CXX object MagentaApp/src/CMakeFiles/LibSampleApp.dir/PortAudioMicrophoneWrapper.cpp.o
[100%] Linking CXX shared library libLibSampleApp.dylib
Undefined symbols for architecture arm64:
  "_Pa_CloseStream", referenced from:
      alexaClientSDK::sampleApp::PortAudioMicrophoneWrapper::~PortAudioMicrophoneWrapper() in PortAudioMicrophoneWrapper.cpp.o
  "_Pa_GetDefaultInputDevice", referenced from:
      alexaClientSDK::sampleApp::PortAudioMicrophoneWrapper::initialize() in PortAudioMicrophoneWrapper.cpp.o
  "_Pa_Initialize", referenced from:
      alexaClientSDK::sampleApp::PortAudioMicrophoneWrapper::initialize() in PortAudioMicrophoneWrapper.cpp.o
  "_Pa_OpenDefaultStream", referenced from:
      alexaClientSDK::sampleApp::PortAudioMicrophoneWrapper::initialize() in PortAudioMicrophoneWrapper.cpp.o
  "_Pa_OpenStream", referenced from:
      alexaClientSDK::sampleApp::PortAudioMicrophoneWrapper::initialize() in PortAudioMicrophoneWrapper.cpp.o
  "_Pa_StartStream", referenced from:
      alexaClientSDK::sampleApp::PortAudioMicrophoneWrapper::startStreamingMicrophoneData() in PortAudioMicrophoneWrapper.cpp.o
  "_Pa_StopStream", referenced from:
      alexaClientSDK::sampleApp::PortAudioMicrophoneWrapper::~PortAudioMicrophoneWrapper() in PortAudioMicrophoneWrapper.cpp.o
      alexaClientSDK::sampleApp::PortAudioMicrophoneWrapper::stopStreamingMicrophoneData() in PortAudioMicrophoneWrapper.cpp.o
  "_Pa_Terminate", referenced from:
      alexaClientSDK::sampleApp::PortAudioMicrophoneWrapper::~PortAudioMicrophoneWrapper() in PortAudioMicrophoneWrapper.cpp.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [MagentaApp/src/libLibSampleApp.dylib] Error 1
make[2]: *** [MagentaApp/src/CMakeFiles/LibSampleApp.dir/all] Error 2
make[1]: *** [MagentaApp/src/CMakeFiles/SampleApp.dir/rule] Error 2

I even tried building PortAudio from scratch using the latest version : http://files.portaudio.com/archives/pa_stable_v190700_20210406.tgz but still facing the same issue

ankitsablok89 avatar Aug 19 '22 10:08 ankitsablok89

There are updated instructions regarding installing PortAudio dependencies, that can be found here:

https://developer.amazon.com/en-US/docs/alexa/avs-device-sdk/mac-os.html

Would it be possible to give those a try and report back whether or not they are successful?

kjkh avatar Oct 15 '22 00:10 kjkh

Hello @xhlinux,

Due to the inactivity of this ticket, this ticket will be closed. Please feel free to re-open the ticket if you have more questions or feel that your question has not been answered fully.

blazusiak-amazon avatar Nov 14 '22 01:11 blazusiak-amazon