用CMake为Windows XP(32位)构建UHD



大家好。

请详细说明使用CMake构建UHD的过程。我遵循开发人员的说明,但它们很短,我第一次使用CMake。我下载并安装了所有必要的组件:CMake、Boost、Python with Cheetah和oxygen。为了简单起见,所有这些组件都安装在驱动器C:上。我启动了CMake(用于MSVC 2010编译器),并得到了构建尝试的输出:

The CXX compiler identification is MSVC 16.0.30319.1
Check for working CXX compiler using: Visual Studio 10 2010
Check for working CXX compiler using: Visual Studio 10 2010 -- works
Detecting CXX compiler ABI info
Detecting CXX compiler ABI info - done
Configuring the python interpreter...
Found PythonInterp: C:/Python27/python.exe (found version "2.7.8") 
Python interpreter: C:/Python27/python.exe
Override with: -DPYTHON_EXECUTABLE=<path-to-python>
The C compiler identification is MSVC 16.0.30319.1
Check for working C compiler using: Visual Studio 10 2010
Check for working C compiler using: Visual Studio 10 2010 -- works
Detecting C compiler ABI info
Detecting C compiler ABI info - done
Check size of void*[8]
Check size of void*[8] - done
Build type not specified: defaulting to release.
Configuring Boost C++ Libraries...
Could NOT find Boost
Boost include directories: Boost_INCLUDE_DIR-NOTFOUND
Boost library directories: 
Boost libraries: 
Python checking for Python version 2.6 or greater
Python checking for Python version 2.6 or greater - found
Python checking for Cheetah templates 2.0.0 or greater
Python checking for Cheetah templates 2.0.0 or greater - found
Configuring LibUHD support...
Dependency Boost_FOUND = 0
Dependency HAVE_PYTHON_PLAT_MIN_VERSION = TRUE
Dependency HAVE_PYTHON_MODULE_CHEETAH = TRUE
Disabling LibUHD support.
Override with -DENABLE_LIBUHD=ON/OFF
Configuring Examples support...
Dependency ENABLE_LIBUHD = OFF
Disabling Examples support.
Override with -DENABLE_EXAMPLES=ON/OFF
Configuring Utils support...
Dependency ENABLE_LIBUHD = OFF
Disabling Utils support.
Override with -DENABLE_UTILS=ON/OFF
Configuring Tests support...
Dependency ENABLE_LIBUHD = OFF
Disabling Tests support.
Override with -DENABLE_TESTS=ON/OFF
Found Doxygen: C:/Program Files/doxygen/bin/doxygen.exe (found version "1.8.7") 

Configuring Manual support...
Dependency DOXYGEN_FOUND = YES
Enabling Manual support.
Override with -DENABLE_MANUAL=ON/OFF

Configuring API/Doxygen support...
Dependency DOXYGEN_FOUND = YES
Enabling API/Doxygen support.
Override with -DENABLE_DOXYGEN=ON/OFF

Could NOT find GZip (missing:  GZIP_EXECUTABLE) 
Configuring Man Pages support...
Dependency GZIP_FOUND = FALSE
Dependency NOT_WIN32 = 
Disabling Man Pages support.
Override with -DENABLE_MAN_PAGES=ON/OFF
######################################################
# UHD enabled components                              
######################################################
* Manual
* API/Doxygen
######################################################
# UHD disabled components                             
######################################################
* LibUHD
* Examples
* Utils
* Tests
* Man Pages
Building version: 003.007.002-0-unknown
Using install prefix: C:/Program Files/UHD
Compatible images can be downloaded from: http://files.ettus.com/binaries/master_images/archive/uhd-images_003.007.002-48-g403e539d.zip
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
Boost_INCLUDE_DIR (ADVANCED)
used as include directory in directory C:/uhd/host
used as include directory in directory C:/uhd/host/docs
Configuring incomplete, errors occurred!
See also "C:/uhd/host/build/CMakeFiles/CMakeOutput.log".

我特别感兴趣的是为什么不找到一个boost(指定哪个文件夹到变量Boost_DIR ?? ?),如何包括LIBUHD(我试图手动创建一个类型为BOOL的变量ENABLE_LIBUHD并将其赋值为1 -但没有任何变化)。

一切都很不清楚,请尽量详细。

谢谢!

您想要进入usrp-users邮件列表

我设法失去了我的构建,失去了我的公式,所以我不得不重新创造它。我想既然我已经完成了这个过程,我将改进我在这里发布的公式:

1) Git的源代码- Git克隆Git://github.com/EttusResearch/uhd.git我做了Git到c:ettus_b210uhd_build创建目录"uhd"

2)安装boost http://sourceforge.net/projects/boost/files/boost-binaries/我使用1_55_0。此发行版将安装在c:localboost_1_55_0选择构建环境的构建-我使用Windows 32位VS2010。

3)安装libusb.http://sourceforge.net/projects/libusbx/files/releases/1.0.18/binaries/这里引用的"libusbx"已经包含在这个版本的libusb中。我把我的安装在C:libusbxlibusbx-1.0.18-win

4)安装Python和Python工具

下载并安装Python(最低2.6.x)二进制文件。我推荐Python 2.7,它附带了一个简单的安装脚本,可以帮助您获得Cheetah。(如果你安装了MATLAB,那么你可能有Python2.7)https://www.python.org/download/

安装猎豹首先安装Python Setup Toolshttps://pypi.python.org/pypi/setuptools打开cmd窗口并执行命令下载并解压包后,在cmd窗口中运行easy_install cheetah

检查正在调用哪个Python版本。

这里最简单的方法是先安装Python27,然后使用easy_install Script来安装Cheetah。

如果在cmd窗口中运行下面的命令显示与python 2.7不同,那么修改注册表项(本地机器和ROOT)。在命令行窗口中运行:

ftype|find /I "python"

你应该得到这样的内容:

Python.CompiledFile="C:Python27python.exe" "%1" %*
Python.File="C:Python27python.exe" "%1" %*
Python.NoConFile="C:Python27pythonw.exe" "%1" %*

还要确保这些条目具有如下条目所示的正确版本:

HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionApp PathsPython.exe
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionApp PathsPython.exe 

5)安装cmake -我使用3.0.0,但任何超过2.8.0应该工作。

在CMake对话框中:

  • 指向源代码c:ettus_b210uhd_builduhd
  • 构建目录c:ettus_b210uhd_builduhdbuild

    注意:这是你想要构建的东西的选择-它不会在源目录

  • 中构建。
  • 启用高级视图

  • boost_all_dyn_link [x]
  • Boost_DEBUG = True

  • BOOST_INCLUDE_DIR = c: 当地 boost_1_55_0

  • BOOST_LIBRARYDIR = c: 当地 boost_1_55_0 lib32 - msvc - 10.0

    注意:我正在使用VS2010,这是构建环境的库。

  • LIBUSB_INCLUDE_DIRS = C: libusbx libusbx-1.0.18-win 包括libusbx - 1.0

  • LIBUSB_LIBRARIES = C: libusbx libusbx-1.0.18-win MS32 dll libusb-1.0.lib

    注意:这是DLL子目录下的。lib文件-他们想要的是库本身而不是包含目录

  • CMAKE_INSTALL_PREFIX = c:/ettus_b210/安装

    注意:默认将其构建到"C:Program Files (x86)UHD",这将覆盖下载的工作二进制文件。你不会想那样做的

  • 我已经禁用了b2.0不需要的驱动程序组件,但是在所有这些都打开的情况下构建也可以工作。

  • [Configure] and [Generate]应该没有错误。

    注意:你会看到"Boost_DIR-NOTFOUND"…这个增强安装不包括.cmake文件,所以缺少这个.cmake文件就是问题所在。Boost_DEBUG将导致BOOST环境被转储到窗口中。

    注意:一定要确保日志窗口中的LIBUSB_FOUND = TRUE。看起来LIBUSB很"狡猾",由于某种原因被从配置中删除了。这可能是cmake 3.0.0的一些微妙问题。再次检查LIBUSB_*变量并配置/generate,直到它工作为止。

打开VS2010,打开UHD。sln"解决方案"文件,许多可执行文件将显示出来。[构建][解决方案]- 10分钟后应该全部构建。

Select INSTALL [Build][Build INSTALL]将把二进制文件放在CMAKE_INSTALL_PREFIX指定的目录中。

如果您安装了二进制文件和映像文件,那么

如果您正在根据自己的需要修改其中一个示例,那么只需将该文件添加到示例目录中的CMakeLists.txt中:

SET(example_sources
    benchmark_rate.cpp
    network_relay.cpp
    rx_multi_samples.cpp
    rx_samples_to_file.cpp
    rx_samples_thread_to_file.cpp
    rx_samples_to_udp.cpp
    rx_timed_samples.cpp
    test_dboard_coercion.cpp
    test_messages.cpp
    test_pps_input.cpp
    test_timed_commands.cpp
    transport_hammer.cpp
    tx_bursts.cpp
    tx_samples_from_file.cpp
    tx_timed_samples.cpp
    tx_waveforms.cpp
    txrx_loopback_to_file.cpp
    latency_test.cpp
    fpgpio.cpp
)

CMake [Configure][Generate]重新创建解决方案树。VS2010 [Build][Solution]将在项目列表中构建新条目。

Cmake有一个方便的"显示更改",所以这些是我对UHD基线的更改作为最终文档:

命令行选项:

-DCMAKE_INSTALL_PREFIX:PATH="C:/ettus_b210/uhd_build/uhd/install" -DBoost_DATE_TIME_LIBRARY_DEBUG:FILEPATH="Boost_DATE_TIME_LIBRARY_DEBUG-NOTFOUND" -DLIBUSB_INCLUDE_DIRS:PATH="C:/libusbx/libusbx-1.0.18-win/include/libusbx-1.0" -DENABLE_USRP1:BOOL="0" -DENABLE_B100:BOOL="0" -DBoost_DIR:PATH="Boost_DIR-NOTFOUND" -DBOOST_INCLUDEDIR:PATH="C:/local/boost_1_55_0" -DLIBUSB_LIBRARIES:FILEPATH="C:/libusbx/libusbx-1.0.18-win/MS32/dll/libusb-1.0.lib" -DBoost_LIBRARY_DIR:PATH="C:/local/boost_1_55_0/lib32-msvc-10.0" -DBOOST_ALL_DYN_LINK:BOOL="1" -DBoost_DEBUG:BOOL="1" -DBoost_INCLUDE_DIR:PATH="C:/local/boost_1_55_0/boost" -DCMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING="/debug /INCREMENTAL"
Cache file:
CMAKE_INSTALL_PREFIX:PATH=C:/ettus_b210/uhd_build/uhd/install
Boost_DATE_TIME_LIBRARY_DEBUG:FILEPATH=Boost_DATE_TIME_LIBRARY_DEBUG-NOTFOUND
LIBUSB_INCLUDE_DIRS:PATH=C:/libusbx/libusbx-1.0.18-win/include/libusbx-1.0
ENABLE_USRP1:BOOL=0
ENABLE_B100:BOOL=0
Boost_DIR:PATH=Boost_DIR-NOTFOUND
BOOST_INCLUDEDIR:PATH=C:/local/boost_1_55_0
LIBUSB_LIBRARIES:FILEPATH=C:/libusbx/libusbx-1.0.18-win/MS32/dll/libusb-1.0.lib
Boost_LIBRARY_DIR:PATH=C:/local/boost_1_55_0/lib32-msvc-10.0
BOOST_ALL_DYN_LINK:BOOL=1
Boost_DEBUG:BOOL=1
Boost_INCLUDE_DIR:PATH=C:/local/boost_1_55_0/boost
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=/debug /INCREMENTAL

对于所有在使用NSIS构建二进制安装程序时遇到麻烦的人来说,只是上面的一个补充(为了更好地理解,我复制了上面的路径):如果构建失败并出现错误"!"宏名为"RemoveSection"已经存在/发现"只需编辑目录c:/ettus_b210/uhd_build/uhd/build_CPack_Packages/win32/NSIS下的NSIS项目文件。搜索"RemoveSection"并将每个条目替换为"RemoveSection_CPack"。修改完NSIS项目文件后,右键单击NSIS项目文件,点击"编译NSIS脚本"。NSIS打开并正在构建二进制安装程序。

这应该至少在NSIS 3.02.1之前有效。

相关内容

  • 没有找到相关文章

最新更新