libdatachannel icon indicating copy to clipboard operation
libdatachannel copied to clipboard

cross compile for arm board.

Open vahidrezaee opened this issue 2 years ago • 4 comments

I want to compile this library for an arm board. I also want to use OpenSSL. first of all, I have compiled openssl-1.1.1 for my board. then, I add this lines to CmakeList.txt set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_SYSTEM_PROCESSOR arm) set(tools /opt/hisi-linux/x86-arm/arm-hisiv500-linux) set(CMAKE_C_COMPILER ${tools}/bin/arm-hisiv500-linux-uclibcgnueabi-gcc) set(CMAKE_CXX_COMPILER ${tools}/bin/arm-hisiv500-linux-uclibcgnueabi-g++) then, I tried this command. $ cmake .. -DUSE_GNUTLS=0 -DUSE_NICE=0 -DOPENSSL_ROOT_DIR=/home/vr/Downloads/openssl-1.1.1m/openssl-1.1.1m/__build/

then, the command line gets stuck in an infinite loop. the useful error that prints out is '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' You have changed variables that require your cache to be deleted. Configure will be re-run and you may have to reset some variables. The following variables have changed: CMAKE_CXX_COMPILER= /usr/bin/c++ CMAKE_CXX_COMPILER= /usr/bin/c++ ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

vahidrezaee avatar Feb 13 '22 07:02 vahidrezaee

You have changed variables that require your cache to be deleted. Configure will be re-run and you may have to reset some variables. The following variables have changed: CMAKE_CXX_COMPILER= /usr/bin/c++ CMAKE_CXX_COMPILER= /usr/bin/c++

The message indicates a previous build configuration for your local machine exists in the build folder, which may lead to problems. You should remove the build folder and recreate it before re-running cmake.

Note that if you have a CMake toolchain for your board, you can run CMake as follows without modification to CMakeLists.txt:

$ mkdir build && cd build
$ cmake .. -DCMAKE_TOOLCHAIN_FILE=/path/to/the/toolchain/XXXX.cmake  -DOPENSSL_ROOT_DIR=/home/vr/Downloads/openssl-1.1.1m/openssl-1.1.1m/__build/

paullouisageneau avatar Feb 13 '22 09:02 paullouisageneau

dear Paul-Louis I am trying to cross-compile this libdatachannel for my board. first I have corrected the last issue that I have. I followed your instructions and remove the build folder and re-run CMake. I copied the following lines in toolchain.cmak file set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_CXX_COMPILER /opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin/arm-hisiv500-linux-uclibcgnueabi-g++) set(CMAKE_C_COMPILER /opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin/arm-hisiv500-linux-uclibcgnueabi-gcc) set(CMAKE_SYSTEM_PROCESSOR arm) set(CMAKE_AR /opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin/arm-hisiv500-linux-uclibcgnueabi-ar) set(COMPILE_FLAGS "-lrt -Wall -lpthread ")

then run CMake command cmake .. -DCMAKE_TOOLCHAIN_FILE=/path/to/the/toolchain/XXXX.cmake -DOPENSSL_ROOT_DIR=/home/vr/Downloads/openssl-1.1.1m/openssl-1.1.1m/__build/ then make command then I encountered a lots of Errors. i think the toolchain.cmake is not correct. do you know any tutorial or toolchain.cmake file example for my problem? best regards

On Sun, 13 Feb 2022 at 01:37, Paul-Louis Ageneau @.***> wrote:

You have changed variables that require your cache to be deleted. Configure will be re-run and you may have to reset some variables. The following variables have changed: CMAKE_CXX_COMPILER= /usr/bin/c++ CMAKE_CXX_COMPILER= /usr/bin/c++

The message indicates a previous build configuration for your local machine exists in the build folder, which may lead to problems. You should remove the build folder and recreate it before re-running cmake.

Note that if you have a CMake toolchain for your board, you can run CMake as follows without modification to CMakeLists.txt:

$ mkdir build && cd build $ cmake .. -DCMAKE_TOOLCHAIN_FILE=/path/to/the/toolchain/XXXX.cmake -DOPENSSL_ROOT_DIR=/home/vr/Downloads/openssl-1.1.1m/openssl-1.1.1m/__build/

— Reply to this email directly, view it on GitHub https://github.com/paullouisageneau/libdatachannel/issues/554#issuecomment-1037964403, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJN7MYCEGZVAVAOTGRMH6O3U253V7ANCNFSM5OIMYH5A . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you authored the thread.Message ID: @.***>

vahidrezaee avatar Feb 13 '22 15:02 vahidrezaee

I think you'd have to ask support dedicated to your board here. The toolchain.cmake file should look similar to this one: https://github.com/Tencent/ncnn/blob/master/toolchains/hisiv500.toolchain.cmake

paullouisageneau avatar Feb 13 '22 18:02 paullouisageneau

node-datachannel compiles binaries for arm boards by using workflow. You can check it here https://github.com/murat-dogan/node-datachannel/blob/master/.github/workflows/build-linux.yml

murat-dogan avatar Feb 14 '22 06:02 murat-dogan