最近找了个开源的项目,准备编译成静态库自己使用,但是在 M1 的 mac 上链接编译的时候报错了,网上搜了一圈都没有解决方法,来问下有没有大佬遇到过这样的问题。
开源项目是 c 语言开发的,自己开发的代码也是 c,编译器用的 mac 自带的 clang ,项目用 cmake 构建,后面我写了简单的 demo ,直接使用命令行编译也是一样的错误,实在有点想不明白。
错误如下:
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)
CPU: Apple M1 Max
内存: 64G
系统版本: macOS Monterey 12.6 (21G115)
clang 版本:
Apple clang version 14.0.0 (clang-1400.0.29.102)
Target: arm64-apple-darwin21.6.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
cmake 版本:
cmake version 3.25.2
CMake suite maintained and supported by Kitware (kitware.com/cmake).
Demo 静态库代码:
tt.h
#ifndef DLB_TT_H
#define DLB_TT_H
void hello(void);
#endif //DLB_TT_H
tt.c
#include "tt.h"
#include <stdio.h>
void hello(void)
{
printf("Hello, I m lj!\n");
}
1
missdeer 2023-02-12 07:09:00 +08:00 via Android
出错信息不是给了吗,缺 main 函数
|
2
ysc3839 2023-02-12 13:38:50 +08:00 via Android
cmake add_library STATIC
|