C++ - 对“sodium_init”的未定义引用

J. *_*Doe 3 c++ cryptography codelite libsodium nacl-cryptography

我正在尝试使用libsodium制作一个测试应用程序,但是我收到错误:

main.cpp:6: undefined reference to `sodium_init'
Run Code Online (Sandbox Code Playgroud)

我运行以下命令以root用户身份安装。

$ ./configure
$ make && make check
$ make install
Run Code Online (Sandbox Code Playgroud)

这是有问题的代码。

#include <stdio.h>
#include <sodium.h>

int main(int argc, char **argv)
{
    if (sodium_init() == -1)
    {
        return 1;
    }

    printf("libsodium had no issues!\n");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我使用CodeLite作为我的 IDE,我的 C++ 编译器选项如下:

-g;-O0;-Wall;-lsodium
Run Code Online (Sandbox Code Playgroud)

这些选项是默认的,我添加-lsodium到列表中。

尝试main.cpp使用以下命令直接从终端编译g++ -lsodium main.cpp会引发相同的错误。

有人可以帮我解决我的问题。

Ker*_* SB 6

用于链接的库进行搜索,以,所以你需要把库后,当地的翻译单元:

g++ main.cpp -lsodium
Run Code Online (Sandbox Code Playgroud)

在您的 IDE 中,确保您添加-lsodium链接器参数。