2011-05-03 49 views
0

我在FreeBSD和试图逃离UHD:http://www.ettus.com/download这通常应该在FreeBSD下运行,但我遇到问题时,我尝试建立它像这里规定: http://www.ettus.com/uhd_docs/manual/html/build.html#build-instructions-unixUHD产生链接错误在FreeBSD下

我得到:

[ 73%] Building CXX object examples/CMakeFiles/benchmark_rx_rate.dir/benchmark_rx_rate.cpp.o 
Linking CXX executable benchmark_rx_rate 
../lib/libuhd.so.003.000: undefined reference to `uhd::set_thread_priority(float, bool)' 
collect2: ld returned 1 exit status 
*** Error code 1 

现在这似乎是一个链接器错误,但如何摆脱它?我尝试使用ldconfig设置路径,但这并没有改变一件事。也许你们中的一些人有一个想法,我可以继续寻找。

回答

0

如果我弄清楚了,libuhd get就是这个CMake脚本早期构建的。如果确实如此,则此错误表明其CMakeLists.txt文件中存在错误。 看起来你正在构建使用libuhd的例子。我怀疑你是否需要他们。因此,要么在CMakeCache.txt中查找开关,并重新生成Makefiles,要么破解CMakeLists.txt,以便不包含示例dir。

您可能尝试的另一件事 - 将CMAKE_EXE_LINKER_FLAGS设置为-L/usr/local/include。

0

这是创建FreeBSD端口的完美场景。由于FreeBSD具有自己的一致的文件系统布局,因此编译器和链接器标记通常需要稍微修改(如arrowdodger所述)。

端口系统是持续捕捉这些配置的变化并作出任何软件包为便于安装的键入命令的框架:

CD的/ usr /港口/ 类/应用程序名称 & &化妆安装清洁

在一个完美的世界中,您将创建UHD端口,将其提交审查并添加到树中。如果你需要帮助学习如何做到这一点,FreeBSD Porter's Handbookfreebsd-ports mailing list是非常好的资源。