eclipse ld上的错误代码:未找到架构make的符号:**错误1
我在eclipse上有一个简单的项目,但我在构建时收到了错误代码,但我不知道该怎么做。这是我的错误代码eclipse ld上的错误代码:未找到架构make的符号:**错误1,c,C,我在eclipse上有一个简单的项目,但我在构建时收到了错误代码,但我不知道该怎么做。这是我的错误代码 构建目标:ArrayArrange 调用:MacOS X C链接器 gcc-o“arrayrarrange”。/arrayrarrange.o 架构x86_64的未定义符号: “_main”,引用自: 主可执行文件的隐式输入/启动 ld:找不到架构x86_64的符号 叮当声:错误:链接器命令失败,退出代码为1(使用-v查看调用) make:**[ArrayArrange]错误1 编辑:这是代
构建目标:ArrayArrange
调用:MacOS X C链接器
gcc-o“arrayrarrange”。/arrayrarrange.o
架构x86_64的未定义符号:
“_main”,引用自:
主可执行文件的隐式输入/启动
ld:找不到架构x86_64的符号
叮当声:错误:链接器命令失败,退出代码为1(使用-v查看调用)
make:**[ArrayArrange]错误1
编辑:这是代码
#include <stdio.h>
void rearrange(int *a1, int n, int *a2);
int main(){
int N, i;
printf("Enter the length of the array:");
scanf("%d", &N);
int array1[N], array2[N];
printf("Enter the elements of the array:");
for(i = 0; i<N; i++){
scanf("%d", &array1[i]);
}
rearrange(array1, N, array2);
printf("Output: ");
for(i = 0; i<N; i++){
printf("%d", array2[i]);
}
}
void rearrange(int *a1, int n, int *a2){
int *i, *j=a2;
for(i = a1; i<a1+n; i++){
if((i-a1) % 2 == 0 || i==0){
*(j + (n/2))++ = *i;
}
else if((i-a1) % 2 != 0){
*j++ = *i;
}
}
}
#包括
空洞重新排列(int*a1,int*n,int*a2);
int main(){
int N,i;
printf(“输入数组的长度:”);
scanf(“%d”和“&N”);
int array1[N],array2[N];
printf(“输入数组的元素:”);
对于(i=0;i您正在使用预编译的对象文件arrayrarrange.o
为MacOS X平台构建可执行文件
每个C程序必须在某个地方定义一个main()
函数才能运行
因此,arrayrarrange.c
不包含任何main()
函数,或者arrayrarrange.o
是在另一台具有不同体系结构的计算机上编译的,并且您的链接器(ld
)投诉,因为它找不到兼容的编译代码。在后一种情况下,只需重新编译arrayrarrange.c
即可,这表明需要解决问题。是否尝试了“Hello World”程序?此代码甚至无法编译。您是否尝试过仅使用gcc arrayrarrange.c
进行编译?