gpt4 book ai didi

c - 无法创建链接静态库的可执行文件

转载 作者:太空狗 更新时间:2023-10-29 11:41:10 25 4
gpt4 key购买 nike

在文件夹 test 中,我创建了 hello.hhello.cmain.c。我的目标是从 hello.hhello.c 创建一个静态库,并从库和 main.c 创建一个可执行文件。以下是我所做的。

你好.h:

#ifndef HELLO_H  
#define HELLO_H
void hello(const char* name);
#endif

你好.c:

#include <stdio.h>  
void hello(const char* name){
printf("hello %s! \n",name);
}

主.c:

#include "hello.h"  
int main(){
hello("everyone");
return 0;
}

在终端中(在 test 文件夹中):我运行

gcc -c hello.c
ar crv libmyhello.a hello.o // to create a staticlib
gcc -c main.c
ld -o Cuteee hello.o -lmyhello
>>> ld: cannot find -lmyhello

请问有什么问题吗?

最佳答案

您需要提供 -L 让 gcc 知道在哪里寻找您的 -l 库:

gcc -c hello.c
ar crv libmyhello.a hello.o
gcc -c main.c
gcc main.o -L. -lmyhello -o Cuteee

要创建最终的可执行文件,使用 gcc 就足够了,不需要 ld。

参见 this question为了理解为什么您可能不需要专门使用 ld

关于c - 无法创建链接静态库的可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49313434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com