aws-samples / amazon-kinesis-video-streams-media-interface

Amazon Kinesis Video Streams Media Interface provides abstract interfaces for board specific media APIs. This repository also contains boards sensors/encoder implementations for Amazon Kinesis Video Streams Producer and WebRTC with out-of-box samples.
Apache License 2.0
31 stars 24 forks source link

[QUESTION]移植到Sigmastar的SSC335平台编译出来的库链接时报未定义的引用 #49

Closed 994028693 closed 2 years ago

994028693 commented 2 years ago

/libkvsWebrtcClient.a(IceAgent.c.o):在函数‘iceAgentCheckCandidatePairConnection’中: IceAgent.c:(.text+0x200e):对‘doubleListGetHeadNode’未定义的引用 libkvsWebrtcClient.a(IceAgent.c.o):在函数‘createIceAgent’中: IceAgent.c:(.text+0x103e):对‘createStateMachine’未定义的引用

codingspirit commented 2 years ago

Hi @994028693 ,

Would you please provide following information:

The commit id you are using i.e. 47c3e59d9d14df0be7e8532279646c7a63c5b6de

What's your toolchain version(check by$CC --version)?

How did you build the code? i.e.

export CC=${YOUR_C_TOOLCHAIN}
export CXX=${YOUR_CXX_TOOLCHAIN}
cd amazon-kinesis-video-streams-media-interface
mkdir build; cd build; cmake .. -DBOARD=${YOUR_BOARD_NAME}
make
994028693 commented 2 years ago

commit id:77d6d78f9b582127262c689bd27a8ae3476561cb

build the code export CC=arm-buildroot-linux-uclibcgnueabihf-gcc export CXX=arm-buildroot-linux-uclibcgnueabihf-g++ cd amazon-kinesis-video-streams-media-interface mkdir build; cd build; cmake .. -DBOARD=SSC335 make

codingspirit commented 2 years ago

Hi @994028693 ,

Since board SSC335 is not implemented yet in current code base, we tried to reproduce your issue with FILE capturer but there is no build issue observed.

Here are some details:

toolchain:

arm-buildroot-linux-uclibcgnueabihf-gcc.br_real (Buildroot 2017.08-gc7bbae9) 4.9.4
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

commit id: 47c3e59d9d14df0be7e8532279646c7a63c5b6de

build command:

export CC=arm-buildroot-linux-uclibcgnueabihf-gcc
export CXX=arm-buildroot-linux-uclibcgnueabihf-g++
cd amazon-kinesis-video-streams-media-interface
mkdir build; cd build;
cmake .. -DBOARD=FILE -DBOARD_DESTINATION_PLATFORM=arm-unknown-linux-uclibc -DUSE_MUCLIBC=ON
make

Please confirm that if there is any missing information.

994028693 commented 2 years ago

GitHub上的code 平台改为SSC335在改下取音视频流相关接口 GitHub code是可以编译通过 ,问题出现在移植到自己内部ipc code的时候链接在GitHub编译出来的静态.a库报有些函数找不到,.,grep查找的时候也只是能找到头文件,没找到函数原型,是否还要添加编译相关文件 报错如下

1645585284(1) 1645585418(1)

codingspirit commented 2 years ago

@994028693 You need to link those libraries with specific order:

set(WEBRTC_SDK_LIBS_STATIC
    libkvsWebrtcClient.a
    libkvsWebrtcSignalingClient.a
    libkvsCommonLws.a
    libkvspicUtils.a
    libkvspicState.a
    libwebsockets.a
    libsrtp2.a
    libusrsctp.a
    libmbedtls.a
    libmbedx509.a
    libmbedcrypto.a
    pthread
    m)

You can find those libraries under build/aws-dependencies/webrtc/lib if media-interface webrtc sample was successfully built.

994028693 commented 2 years ago

Yes, these libraries have been compiled, but it seems that there are still some other files missing. For example, some compilation switches are not turned on image

codingspirit commented 2 years ago

@994028693 I guess you need to provide your link options. We can't provide any suggestion with current information. doubleListGetNodeCount should be defined in libkvspicUtils.a.

994028693 commented 2 years ago

build command: export CC=arm-buildroot-linux-uclibcgnueabihf-gcc export CXX=arm-buildroot-linux-uclibcgnueabihf-g++ cd amazon-kinesis-video-streams-media-interface mkdir build; cd build; cmake .. -DBOARD=T31 make

Modify the following file and report an error。The path of the header file doesn't seem to be found. Where is it set 1645605738(1)

amazon-kinesis-video-streams-media-interface\CMake\ amazon-kinesis-video-streams-media-interface\source\ T31.zip T31.zip

codingspirit commented 2 years ago

I can't open the source file you uploaded, looks like it's not an utf-8 file. Please follow the Platform Implementation Guide to port capturer to SSC335 instead of modifying T31 board code. Alternatively you may raise a PR if you need our help to review your code.

codingspirit commented 2 years ago

Closing stale issue