Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何解决位置无关的可执行错误_Android_C - Fatal编程技术网

Android 如何解决位置无关的可执行错误

Android 如何解决位置无关的可执行错误,android,c,Android,C,在我的android 5.1手机中,我在cppdroid 3.3.2的所有代码中都出现了这个错误。 但在更新最新版本后,我面临着这个问题。在更新之前,一切正常。 我是编程的初学者。请帮帮我 我的代码: #include <stdio.h> #include <string.h> int coin[21], make; long long int dp[21][10000]; long long int ways( int i, int a) { if

在我的android 5.1手机中,我在cppdroid 3.3.2的所有代码中都出现了这个错误。 但在更新最新版本后,我面临着这个问题。在更新之前,一切正常。 我是编程的初学者。请帮帮我

我的代码:

#include <stdio.h>
#include <string.h>




int coin[21], make;
long long int dp[21][10000];

long long int ways(  int i,  int a)
{
    if(a <= 0) return 1;
    if(i >= 20) return 0;
    if(dp[i][a] != -1) return dp[i][a];

    long long int ret1 = 0, ret2 = 0;
    if(a - coin[i] >= 0) ret1 = ways(i, a-coin[i]);
    ret2 = ways(i+1, a);

    return dp[i][a] = ret1 + ret2;
}

void make_coins()
{
    int i = 0;
    coin[i] = 1;
    for(i++; i <= 20; i++) coin[i] = (i+1)*(i+1)*(i+1);
    return ;
}

int main(void)
{

    memset(dp,-1,sizeof(dp));
    make_coins();
    while(scanf("%d",&make) == 1) printf("%lld\n", ways(0, make));

    return 0;
}

一般来说,Android设备的本机代码必须使用
-fpic
选项编译,用于位置无关代码,并与
-pie
选项链接,该选项告诉链接器生成位置无关的可执行文件(与Android 9.0“pie”无关)


我不熟悉cppdroid,但它大概有办法显示它用于编译器和链接器的选项?如果您仍然有这个问题,并张贴您的选项列表,我可能能够提供更具体的帮助

不特别是这个代码。我尝试编译的所有代码都显示此错误。看起来它希望您使用指示位置独立代码的标志编译
-fpic
。但有可能用电话吗@christian_Gibbons为了便于阅读和理解:1)遵循公理:每行只有一条语句,并且(最多)每条语句有一个变量声明。2) 通过单个空行分隔代码块(用于、if、else、while、do…while、switch、case、default)。3) 用2或3个空行分隔函数(保持一致)变量(和参数)名称应表示
内容
用法
(或两者都更好)。像:
i
a
dp
ret1
ret2
等名称即使在当前上下文中也毫无意义。
error : only position independent executables (PIE) are supported.