在我的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;
}
编译错误:
error : only position independent executables (PIE) are supported.
答案 0 :(得分:0)
通常,对于Android设备,本机代码必须使用-fpic
选项进行编译,以获取与位置无关的代码,并与-pie
选项链接,以告知链接器产生以下位置:独立的可执行文件(与Android 9.0“ Pie”无关)。
我对cppdroid不熟悉,但是它大概可以显示用于编译器和链接器的选项了吗?如果您仍然有此问题,并发布您的选项列表,我也许可以提供更具体的帮助。