带有“jrtplib”库的未定义参考编译程序

时间:2017-11-24 09:36:27

标签: c++ compiler-errors cmake g++ shared-libraries

编译以下程序

fsm

#include "jrtplib3/rtpsession.h"
#include "jrtplib3/rtpudpv4transmitter.h"
#include "jrtplib3/rtpipv4address.h"
#include "jrtplib3/rtpsessionparams.h"
#include "jrtplib3/rtperrors.h"
#include "jrtplib3/rtplibraryversion.h"
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <string>

using namespace jrtplib;

void checkerror(int rtperr)
{
    if (rtperr < 0)
    {
        std::cout << "ERROR: " << RTPGetErrorString(rtperr) << std::endl;
            exit(-1);
    }
}

int main(void){
    return 0;
}

引发了以下错误:

g++ -o ex1 ex1.cpp

即使我的/tmp/ccDU6m7Y.o: In function `checkerror(int)': ex1.cpp:(.text+0x2e): undefined reference to `jrtplib::RTPGetErrorString[abi:cxx11](int)' collect2: error: ld returned 1 exit status 设置为LD_LIBRARY_PATH且该文件夹包含必要的库:

/usr/local/lib

我使用

编译了libjrtp.a libjrtp.so libjrtp.so.3.11.1 以及jthread
jrtplib

我还发现mkdir build cd build cmake .. sudo all make 中的示例已成功编译。我的代码示例是example1的一个片段。不幸的是,我无法弄清楚差异在哪里。 我认为我的问题的答案很简单。

0 个答案:

没有答案