0

我在 freebsd 上并尝试从以下位置运行 uhd:http ://www.ettus.com/download这通常应该在 freebsd 下运行,但是当我尝试按照此处指定的方式构建它时遇到问题: http://www。 ettus.com/uhd_docs/manual/html/build.html#build-instructions-unix

我得到:

[ 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 设置路径,但这并没有改变任何事情。也许你们中的一些人知道我可以在哪里继续搜索。

4

2 回答 2

0

If i get it right, libuhd get's built earlier by this CMake script. If it's true, this error indicates bug in their CMakeLists.txt files. It looks like you are building examples of using libuhd. I doubt you are need them. So, either look for switches in your CMakeCache.txt and regenerate Makefiles or hack CMakeLists.txt to not include examples dir.

Another thing you may try - set CMAKE_EXE_LINKER_FLAGS to -L/usr/local/include.

于 2011-05-05T12:40:12.347 回答
0

这是创建 FreeBSD 端口的完美情况。由于 FreeBSD 有自己一致的文件系统布局,编译器和链接器标志通常需要稍微修改(如 arrowdodger 所指出的)。

ports 系统是一个框架,用于持续捕获这些配置更改并使任何软件包都像键入命令一样易于安装:

cd /usr/ports/ category/application-name && make install clean

在一个完美的世界中,您将创建 UHD 端口,将其提交以供审核并添加到树中。如果您需要帮助来学习如何做到这一点,FreeBSD Porter's Handbookfreebsd-ports 邮件列表是极好的资源。

于 2011-05-23T22:46:13.343 回答