【问题标题】:How to link libssh library in Makefile如何在 Makefile 中链接 libssh 库
【发布时间】:2015-10-06 17:41:20
【问题描述】:

当我尝试编译我的测试程序时出现以下错误

g++     main.cpp   -o main
/tmp/ccICBwKO.o: In function `main':
main.cpp:(.text+0xa): undefined reference to `ssh_new'
main.cpp:(.text+0x2d): undefined reference to `ssh_free'
collect2: error: ld returned 1 exit status
make: *** [main] Error 1

在我的制作文件中,我有:

all:        main

$main:  main.cpp
        g++ main.cpp -o main -lssh

感谢您的帮助。 (我真的很讨厌 C/C++...)

【问题讨论】:

    标签: c++ makefile libssh


    【解决方案1】:

    从日志中可以看出,make 没有使用您为$main 提供的规则。我怀疑您想将其命名为main 或$(main)。

    $main 将变量 $m 的值(默认为空,因为未定义 m)与 ain,因此您为 ain 而不是 main 创建了规则。 make 因此依赖其默认规则从.cpp 文件创建可执行文件,其中不包括与libssh 的链接。

    【讨论】:

    • 完全正确。可以通过删除 Makefile 中的前导 $ 来修复 makefile。顺便说一句,这不是与 libssh 相关的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-17
    • 2012-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多