编译器找不到头文件中声明的函数

Compiler not finding functions declared in header file

我需要一些帮助来理解为什么这不起作用。我有一个 .h 文件声明了一个在 .so 文件中定义的函数:

/* navApi.h */
void navApi_init();     /* resides in libNavApi.so */

和一个 .cpp 文件:

/* test.cpp */
#include <iostream>
#include "navApi.h"

int main(void)
{
    std::cout << "start...\n";
    navApi_Init();
}

我编译使用:

g++ test.cpp -navApi

我收到以下错误:

test.cpp: (.txt+0x1e): undefined reference to `navApi_Init()'
collect2: error: ld returned 1 exit status

-- 运行 在 linux, ubuntu --

链接器错误,找不到libnavApi.so

g++ test.cpp -lnavApi
如果 libnavApi.so 位于 g++ 知道的路径中,

可能会起作用。