Cmake не может скомпилировать простую тестовую программу на qt creator / collect2: error: ld

Я пытаюсь создать проект Android с помощью Android NDK.

Я добавил NDK в версии QT, комплект сборки был обнаружен автоматически, но при запуске CMake я получаю следующую ошибку:

Starting to parse CMake project, using: "-DCMAKE_CXX_COMPILER:STRING=/home/self/Downloads/addis/android-ndk-r17b/toolchains/x86-4.9/prebuilt/linux-x86_64/bin/i686-linux-android-g++", "-DCMAKE_C_COMPILER:STRING=/home/self/Downloads/addis/android-ndk-r17b/toolchains/x86-4.9/prebuilt/linux-x86_64/bin/i686-linux-android-gcc", "-DCMAKE_PREFIX_PATH:STRING=/home/self/Qt5.9.6/5.9.6/android_x86", "-DQT_QMAKE_EXECUTABLE:STRING=/home/self/Qt5.9.6/5.9.6/android_x86/bin/qmake".
The C compiler identification is GNU 4.9.0
The CXX compiler identification is GNU 4.9.0
Check for working C compiler: /home/self/Downloads/addis/android-ndk-r17b/toolchains/x86-4.9/prebuilt/linux-x86_64/bin/i686-linux-android-gcc
Check for working C compiler: /home/self/Downloads/addis/android-ndk-r17b/toolchains/x86-4.9/prebuilt/linux-x86_64/bin/i686-linux-android-gcc -- broken
CMake Error at /usr/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake:52 (message):
  The C compiler

    "/home/self/Downloads/addis/android-ndk-r17b/toolchains/x86-4.9/prebuilt/linux-x86_64/bin/i686-linux-android-gcc"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: /tmp/QtCreator-Tuub3S/qtc-cmake-XXSZ1kmJ/CMakeFiles/CMakeTmp

    Run Build Command:"/usr/bin/ninja" "cmTC_991f8"
    [1/2] Building C object CMakeFiles/cmTC_991f8.dir/testCCompiler.c.o
    [2/2] Linking C executable cmTC_991f8
    FAILED: cmTC_991f8 
    : && /home/self/Downloads/addis/android-ndk-r17b/toolchains/x86-4.9/prebuilt/linux-x86_64/bin/i686-linux-android-gcc   -rdynamic CMakeFiles/cmTC_991f8.dir/testCCompiler.c.o  -o cmTC_991f8   && :
    /home/self/Downloads/addis/android-ndk-r17b/toolchains/x86-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/bin/ld: error: cannot open crtbegin_dynamic.o: No such file or directory
    /home/self/Downloads/addis/android-ndk-r17b/toolchains/x86-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/bin/ld: error: cannot open crtend_android.o: No such file or directory
    /home/self/Downloads/addis/android-ndk-r17b/toolchains/x86-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/bin/ld: error: cannot find -lc
    /home/self/Downloads/addis/android-ndk-r17b/toolchains/x86-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/bin/ld: error: cannot find -ldl
    collect2: error: ld returned 1 exit status
    ninja: build stopped: subcommand failed.




  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:3 (project)


Configuring incomplete, errors occurred!
See also "/tmp/QtCreator-Tuub3S/qtc-cmake-XXSZ1kmJ/CMakeFiles/CMakeOutput.log".
See also "/tmp/QtCreator-Tuub3S/qtc-cmake-XXSZ1kmJ/CMakeFiles/CMakeError.log".
CMake Project parsing failed.

Что я делаю неправильно?

РЕДАКТИРОВАТЬ Итак, как и предполагалось, я скачал NDK 10e ... Проблема, похоже, осталась прежней:

/usr/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake:52: error: The C compiler "/home/self/Android/android-ndk-r10e/toolchains/x86-4.9/prebuilt/linux-x86_64/bin/i686-linux-android-gcc" is not able to compile a simple test program.
 It fails with the following output: Change Dir: /tmp/QtCreator-vkcYcW/qtc-cmake-XXyT08En/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/ninja" "cmTC_3ab69" 
[1/2] Building C object CMakeFiles/cmTC_3ab69.dir/testCCompiler.c.o 
[2/2] Linking C executable cmTC_3ab69 FAILED: cmTC_3ab69 : && /home/self/Android/android-ndk-r10e/toolchains/x86-4.9/prebuilt/linux-x86_64/bin/i686-linux-android-gcc   -rdynamic CMakeFiles/cmTC_3ab69.dir/testCCompiler.c.o  -o cmTC_3ab69   && : 
/home/self/Android/android-ndk-r10e/toolchains/x86-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/i686-linux-androi.d/4.9/../../../../i686-linux-android/bin/ld: error: cannot open crtbegin_dynamic.o: No such file or directory /home/self/Android/android-ndk-r10e/toolchains/x86-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/i686-linux-android/4.9/../../../../i686-linux-android/bin/ld: error: cannot open crtend_android.o: No such file or directory /home/self/Android/android-ndk-r10e/toolchains/x86-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/i686-linux-android/4.9/../../../../i686-linux-android/bin/ld: error: cannot find -lc /home/self/Android/android-ndk-r10e/toolchains/x86-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/i686-linux-android/4.9/../../../../i686-linux-android/bin/ld: error: cannot find -ldl 
collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed.

Какая у вас версия NDK?

eyllanesc 11.07.2018 10:19

@eyllanesc последний, скачанный вчера. R17b

Alex 11.07.2018 10:28

Qt не поддерживает последнюю версию NDK, вы должны использовать версию 10e, проверьте документы: doc.qt.io/qt-5/androidgs.html

eyllanesc 11.07.2018 10:29

@eyllanesc интересно. Но они рекомендуют 10е, а не требуют. Это точно причина?

Alex 11.07.2018 10:32

@eyllanesc, хорошо. Так что опубликуйте это как ответ, пожалуйста :)

Alex 11.07.2018 10:34

Да, это уже случилось со мной, и я решил использовать эту версию. Я использую qmake, а не cmake, но думаю, что в обоих случаях он должен работать.

eyllanesc 11.07.2018 10:34
6
7
1 030
1

Ответы 1

Qt не поддерживает последнюю версию NDK, в документы рекомендуется использовать NDK 10e

@Alex Почему бы не использовать qmake через Qtcreator?, А затем адаптировать его к cmake

eyllanesc 12.07.2018 19:07

@Alex Я обращаю внимание на то, что сначала убедитесь, что у вас есть нужные пакеты, чтобы мы могли исключить некоторые возможные причины.

eyllanesc 12.07.2018 19:20

Как я могу собрать существующий проект (github.com/mapsme/omim) с помощью QMake?

Alex 12.07.2018 19:34

ммм, так что вы хотите скомпилировать проект, позвольте мне посмотреть, смогу ли я его скомпилировать, и я расскажу вам о своем прогрессе.

eyllanesc 12.07.2018 19:36

Позвольте нам продолжить обсуждение в чате.

Alex 12.07.2018 19:36

Другие вопросы по теме