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

Compiler not finding functions declared in header file

本文关键字:声明 函数 文件 找不到 编译器      更新时间:2023-10-16

我需要一些帮助来理解为什么这不起作用。我有一个 .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++知道的路径中,则可能会起作用。