🧙Конкурс сказок!
C++/C++11
(OFF) ut2k4 6 окт 2018

Makefile

собирал программы вручную проблем небыло только долго.
вот решил воспользоваться make и столкнулся с такой проблемой.

пример:

//main.cpp

#include "show.h"

int main()
{

ShowMe("tundra");

return 0;
}

// show.h


#ifndef _SWID_
#define _SWID_

void ShowMe( const char *s );

#endif

// show.cpp

#include <cstdio>


void ShowMe( const char *s )
{
std::printf("%s\n", s );
}

// Makefile


tundra: main.o show.o
g++ -o tundra main.o show.o

main.o: main.cpp show.h
g++ -c main.cpp

show.o: show.cpp
g++ -c show.cpp

собирает всё без ошибок а когда запускаешь программу выдает
такую ошибку:
error: only position independent executables (PIE) are supported.

что это бы могло значить?
(вручную собирает без ошибок компилятор GCC 7.2.0 )

Комментарии (4)

может это потому что я запускаю её не из bin папки андроида?
-1
Описание проблемы, извиняюсь, дерьмо. Ты это с Android SDK собираешь или как "про" прямо на смартфоне?..

Попробуй добавить флаги:

Для компилятора
-fPIE Для компоновщика
-fPIE -pie
да это я пишу на планшете на андроид 5.

вопрос заключался в следующем:
1) что означает ошибка - error: only position independent executables (PIE) are supported.
2) правильно ли у меня написан Makefile на предоставленые файлы ( используется компилятор GCC 7.2)

сделал как вы посоветовали вот типа такой Makefile:

CC = g++
CPPFLAGS = -Wall -g -fPIE
LDFLAGS = -fPIE -pie

tundra: main.o show.o
$(CC) $(LDFLAGS) -o tundra main.o show.o

main.o: main.cpp show.h
$(CC) $(CCPFLAGS) -c main.cpp

show.o: show.cpp
$(CC) $(CCPFLAGS) -c show.cpp

компилируется но при запуске таже ошибка.

нашёл на одном сайте ответ:

The steps are:
1-Copy it to a folder that the OS allows running an executable from within.
... The folder I used is /data/local /tmp
... I don't think you can put anything there without root !
2-Change the mode of the file to 755 to allow everyone to run it.
3-Use adb or Terminal Emulator to run it.
... If you are comfortable with adb commands then you don't need Terminal Emulator

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

просто и понятно:)
Можно ещё как белый человек использовать Android NDK
Показать комментарий
Скрыть комментарий
Для добавления комментариев необходимо авторизоваться
C++/C++11
Удивительный колхоз
Удивительный колхоз - это новая многопользовательс
Тема: Светлая | Тёмная
Версия: Mobile | Lite | Touch | Доступно в Google Play