我正在尝试使用makefile在ubuntu中编译一些文件。
在网上进行几次搜索后,我在makefile文件中添加了以下几行。

run: hellocode.cpp
    g++ -c hellocode.cpp -lssl -lcrypto


仍然在编译时创建目标文件,然后引发此错误:
未定义对“ SSL_write”的引用。

相反,如果删除'-c'并像这样使用它

run: hellocode.cpp
    g++ hellocode.cpp -lssl -lcrypto


然后,我看不到链接的先前错误,但是它显示了与openssl链接无关但与代码中的其他文件有关的其他错误。我已经浏览了该论坛上与此相关的许多问题,但似乎都没有帮助我。

请告诉我我的makefile错误还是我的机器存在某些问题,导致其无法链接到我的库。

最佳答案

这是您可以采用的简单Makefile。请注意,编译和链接是两个步骤。如果需要,可以将-I用于其他包含路径,将-L用于其他链接路径。

.PHONY : all
all : hellocode

hellocode : hellocode.o
    g++ -o hellocode hellocode.o -lssl -lcrypto

hellocode.o : hellocode.cpp
    g++ -c hellocode.cpp -o hellocode.o


如果有帮助,这里有一些basics of makefiles

关于c++ - 在GCC中链接库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31943743/

10-13 03:13