繁体   English   中英

(C) 架构 arm64 的未定义符号

[英](C) Undefined symbols for architecture arm64

当前在编译包含多个文件的程序以及处理 main 之外的文件时遇到问题。 我怀疑它与编译器有关,与 -c 命令有关,或者可能是我在安装过程中搞砸了。 解决这个问题的任何帮助都会是一个巨大的帮助,我一直在询问同学并在线查看,但似乎解决方案必须非常简单。

[Running] cd "/Users/shawn/Desktop/c-course/M03/calc/src/" && gcc tempCodeRunnerFile.c -o tempCodeRunnerFile && "/Users/shawn/Desktop/c-course/M03/calc/src/"tempCodeRunnerFile
Undefined symbols for architecture arm64:
  "_main", referenced from:
     implicit entry/start for main executable
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

[Done] exited with code=1 in 0.254 seconds`your text

这是 source.c 文件,我打算更改的文件。

#include "source.h"

#include <math.h>
#include <stdio.h>

void simple_math(void){
    float num1;
    float num2;
    float result;
    char operator;
    char space = ' ';


    scanf("%f", &num1);
    scanf("%c", &space);
    scanf("%f", &num2);
    scanf("%c", &space);
    scanf("%c", &operator); //taking user input 
    

    switch(operator) {
        case '+':
            result = num1 + num2;
            printf("%.1f", result);
            break;
        case '-':
            result = num1 - num2;
            printf("%.1f", result);
        case '*':
            result = num1 * num2;
            printf("%.1f", result);
        case '/':
            result = num1 / num2;
            printf("%.1f", result);
        default: 
            printf("ERR");
    }

    printf("%.1f", result);
}

source.h 文件只包含

void simple_math(void);

主文件包含以下内容,#include 标记包括其他文件。

#include "source.h"
#include <stdio.h>

int main()
{

    printf("\n--- Testing calculator ---\n");
    simple_math();

    return 0;
}

所有文件都需要链接和编译:

gcc file1.c file2.c -o myprogram

然后运行可执行文件:

./myprogram

可以参考这个回答: How do I link object files in C? 失败并显示“体系结构 x86_64 的未定义符号”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM