编译以下程序
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的一个片段。不幸的是,我无法弄清楚差异在哪里。
我认为我的问题的答案很简单。