eclipse ld上的错误代码:未找到架构make的符号:**错误1

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 编辑:这是代

我在eclipse上有一个简单的项目,但我在构建时收到了错误代码,但我不知道该怎么做。这是我的错误代码

构建目标: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
进行编译?