KomodoOcean icon indicating copy to clipboard operation
KomodoOcean copied to clipboard

native_libtapi build error when cross compiling for MacOS

Open DeckerSU opened this issue 2 years ago • 0 comments

When cross-compiling for Mac there is possible native_libtapi package build error, like this:

-- The C compiler identification is Clang 10.0.1
-- The CXX compiler identification is Clang 10.0.1
-- The ASM compiler identification is Clang with GNU-like command-line
-- Found assembler: /home/decker/mac_test/bin/clang
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /home/decker/mac_test/bin/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - failed
-- Check for working CXX compiler: /home/decker/mac_test/bin/clang++
-- Check for working CXX compiler: /home/decker/mac_test/bin/clang++ - broken
-- Configuring incomplete, errors occurred!

As you are see there is an error with Detecting CXX compiler ABI info. Extended logs (you can also play with --log-level=VERBOSE --trace-expand --debug-trycompile argumets in cmake) will give following info:

CMake Error at /usr/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake:62 (message):
  The C++ compiler

    "/home/decker/KomodoOcean/depends/x86_64-apple-darwin19/native/bin/clang++"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: /home/decker/KomodoOcean/depends/work/build/x86_64-apple-darwin19/native_libtapi/664b8414f89612f2dfd35a9b679c345aa5389026-8a16f55cbed/build/CMakeFiles/CMakeTmp
    
    Run Build Command(s):/usr/bin/gmake -f Makefile cmTC_a56c8/fast && gmake[1]: Entering directory '/home/decker/KomodoOcean/depends/work/build/x86_64-apple-darwin19/native_libtapi/664b8414f89612f2dfd35a9b679c345aa5389026-8a16f55cbed/build/CMakeFiles/CMakeTmp'
    /usr/bin/gmake  -f CMakeFiles/cmTC_a56c8.dir/build.make CMakeFiles/cmTC_a56c8.dir/build
    gmake[2]: Entering directory '/home/decker/KomodoOcean/depends/work/build/x86_64-apple-darwin19/native_libtapi/664b8414f89612f2dfd35a9b679c345aa5389026-8a16f55cbed/build/CMakeFiles/CMakeTmp'
    Building CXX object CMakeFiles/cmTC_a56c8.dir/testCXXCompiler.cxx.o
    /home/decker/KomodoOcean/depends/x86_64-apple-darwin19/native/bin/clang++   -I /home/decker/KomodoOcean/depends/work/build/x86_64-apple-darwin19/native_libtapi/664b8414f89612f2dfd35a9b679c345aa5389026-8a16f55cbed/build/../src/llvm/projects/clang/include -I /home/decker/KomodoOcean/depends/work/build/x86_64-apple-darwin19/native_libtapi/664b8414f89612f2dfd35a9b679c345aa5389026-8a16f55cbed/build/projects/clang/include  -MD -MT CMakeFiles/cmTC_a56c8.dir/testCXXCompiler.cxx.o -MF CMakeFiles/cmTC_a56c8.dir/testCXXCompiler.cxx.o.d -o CMakeFiles/cmTC_a56c8.dir/testCXXCompiler.cxx.o -c /home/decker/KomodoOcean/depends/work/build/x86_64-apple-darwin19/native_libtapi/664b8414f89612f2dfd35a9b679c345aa5389026-8a16f55cbed/build/CMakeFiles/CMakeTmp/testCXXCompiler.cxx
    Linking CXX executable cmTC_a56c8
    /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_a56c8.dir/link.txt --verbose=1
    /home/decker/KomodoOcean/depends/x86_64-apple-darwin19/native/bin/clang++ -I /home/decker/KomodoOcean/depends/work/build/x86_64-apple-darwin19/native_libtapi/664b8414f89612f2dfd35a9b679c345aa5389026-8a16f55cbed/build/../src/llvm/projects/clang/include -I /home/decker/KomodoOcean/depends/work/build/x86_64-apple-darwin19/native_libtapi/664b8414f89612f2dfd35a9b679c345aa5389026-8a16f55cbed/build/projects/clang/include  CMakeFiles/cmTC_a56c8.dir/testCXXCompiler.cxx.o -o cmTC_a56c8 
    /usr/bin/ld: cannot find -lstdc++: No such file or directory
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

It means that libstdc++-XX-dev package missed on your system.

The solution is:

sudo apt install libstdc++-$(g++ -dumpversion)-dev

DeckerSU avatar Feb 20 '23 17:02 DeckerSU