C 中体系结构的未定义符号 x86_64
Undefined symbols for architecture x86_64 in C
今天我安装了 C 的 Allegro 游戏编程库,我试图包含其中一个头文件,但是当我尝试在终端中执行 gcc -I./include example.c -o a.exe
时,我不断收到此错误:
Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable
(maybe you meant: __al_mangled_main)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
有什么想法吗?我使用此处的说明安装了 Allegro 5:https://wiki.allegro.cc/index.php?title=Install_Allegro5_From_GIT/OSX
example.c代码:
#include <stdio.h>
#include <allegro5/allegro.h>
int main(int argc, const char *argv[]){
puts(“Hello, world!”);
return 0;
}
You need to link your executable to Allegro.
根据常见问题解答,您应该将 -lallegro
添加到您的编译命令,或 -lallegro -lallegro_main
on OSX
您可能需要其他标志,并且 Allegro 5 使用 pkg-config 而不是 allegro-config,所以 pkg-config allegro-5.0 allegro_main-5.0 --cflags --libs
以找出答案。
您可以使用反引号将其组合成一个编译器命令,例如
$CC -W -Wall `pkg-config allegro-5.0 allegro_main-5.0 --cflags --libs` foo.c -o foo.exe
今天我安装了 C 的 Allegro 游戏编程库,我试图包含其中一个头文件,但是当我尝试在终端中执行 gcc -I./include example.c -o a.exe
时,我不断收到此错误:
Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable
(maybe you meant: __al_mangled_main)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
有什么想法吗?我使用此处的说明安装了 Allegro 5:https://wiki.allegro.cc/index.php?title=Install_Allegro5_From_GIT/OSX
example.c代码:
#include <stdio.h>
#include <allegro5/allegro.h>
int main(int argc, const char *argv[]){
puts(“Hello, world!”);
return 0;
}
You need to link your executable to Allegro.
根据常见问题解答,您应该将 -lallegro
添加到您的编译命令,或 -lallegro -lallegro_main
on OSX
您可能需要其他标志,并且 Allegro 5 使用 pkg-config 而不是 allegro-config,所以 pkg-config allegro-5.0 allegro_main-5.0 --cflags --libs
以找出答案。
您可以使用反引号将其组合成一个编译器命令,例如
$CC -W -Wall `pkg-config allegro-5.0 allegro_main-5.0 --cflags --libs` foo.c -o foo.exe