我想为我正在编写的程序制作一个Makefile
,但在编译方面我遇到了问题。到目前为止,我只是将源文件包含到main
中并使用以下命令编译:
gcc main.c -lcrypto -lssl
我在我的程序中使用openssl。但是当我读到这不是一个好习惯时,我想编写一个make文件,并在main
中包含头文件。但我有以下问题:
我想首先制作.o
个文件:
gcc -lcrypto -lssl -c read_and_send.c
但是对于这个我得到了很多错误(未知类型名称),在OpenSSL库中定义的类型。我不知道如何修复它,就像使用我想写的数学库一样:
gcc -lm -c read_and_send.c
不是吗?
我期待着您的回复。
亲切的问候
Greenality
答案 0 :(得分:2)
但是对于这个我得到了很多错误(未知的类型名称),这是在openssl库中定义的类型。
您需要在read_and_send.c
您应该阅读有关C编程的基本教程以及如何使用标头以及如何编译和链接。
我不知道如何修复它,就像使用我想写的数学库一样:
gcc -lm -c read_and_send.c
不会吗?
不,-c
选项意味着您只想将源代码编译为.o
文件,而不是链接,因此不使用库,并且将忽略任何-l
选项。
将所有-l
文件链接在一起以创建可执行文件时,需要使用.o
选项。当您执行该链接步骤时,库应位于命令的 end 之后,依赖于它们的文件。