首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用CMake为Windows构建UHD (32位)

使用CMake为Windows构建UHD (32位)
EN

Stack Overflow用户
提问于 2014-08-06 13:04:21
回答 2查看 2.4K关注 0票数 0

日安。

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

代码语言:javascript
复制
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--但没有任何更改)。

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

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-06 17:29:56

你想上usrp用户邮件列表。

我设法失去了我的身材,失去了我的公式,所以我不得不复制它。我想,既然我已经经历了这个过程,我将改进我在这里发布的公式:

1) Git源- git克隆git://github.com/EttusResearch/uhd.git我将GIT插入c:\ettus_b210\uhd_build,创建目录"uhd“。

2)安装boost http://sourceforge.net/projects/boost/files/boost-binaries/我使用了1_55_0。此发行版将安装在c:\local\boost_1_55_0中,为您的构建环境选择构建-我使用的是Windows32位VS2010。

3)安装libusb.http://sourceforge.net/projects/libusbx/files/releases/1.0.18/binaries/此处引用的"libusbx“已包含在此版本中的libusb。我在C:\libusbx\libusbx-1.0.18-win中安装了我的

4)安装Python和指定的Python工具

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

安装猎豹首先安装https://pypi.python.org/pypi/setuptools安装工具打开cmd窗口并在下载和解压包后执行它,在cmd窗口中运行easy_install猎豹

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

这里的简单方法是安装Python27,然后使用easy_install脚本安装Cheetah。

如果在cmd窗口中运行下面的命令将显示与python 2.7不同的内容,则修改注册表项(Local和ROOT)。在命令行窗口中运行:

代码语言:javascript
复制
ftype|find /I "python"

你应该得到这样的东西:

代码语言:javascript
复制
Python.CompiledFile="C:\Python27\python.exe" "%1" %*
Python.File="C:\Python27\python.exe" "%1" %*
Python.NoConFile="C:\Python27\pythonw.exe" "%1" %*

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

代码语言:javascript
复制
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths\Python.exe
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\Python.exe 

5)安装cmake -我使用了3.0.0,但是任何超过2.8.0的都可以。

在CMake对话框中:

  • 指向源c:\ettus_b210\uhd_build\uhd
  • 构建c:\ettus_b210\uhd_build\uhd\build的目录 注意:这是您想要构建的东西的选择-它不会在源目录中生成。
  • 启用高级视图
  • BOOST_ALL_DYN_LINK X
  • Boost_DEBUG=True 注:在此标志上大小写很重要。
  • BOOST_INCLUDE_DIR=c:\local\boost_1_55_0 注意:这是包含" boost“目录的目录,它是如何包含boost头的。
  • BOOST_LIBRARYDIR=c:\local\boost_1_55_0\lib32-msvc-10.0 注意:我使用的是VS2010,这是构建环境的库。
  • LIBUSB_INCLUDE_DIRS=C:\libusbx\libusbx-1.0.18-win\include\libusbx-1.0
  • LIBUSB_LIBRARIES=C:\libusbx\libusbx-1.0.18-win\MS32\dll\libusb-1.0.lib 注意:这是DLL子目录中的.lib文件,他们希望库本身不是包含的目录。
  • CMAKE_install_前缀=c:/ettus_B 210/install 注意:默认构建为"C:\Program (x86)\UHD",这将覆盖下载的工作二进制文件。你不想那样做。
  • 我已经禁用了驱动程序组件,这些组件对于B2x0来说并不是必需的,但是构建所有这些都打开了工作。
  • 配置和生成不应该有任何错误。 注意:你会看到“Boost_DIR-NOTFOUND”.这个boost安装不包括一个.cmake文件,因此缺少这个.cmake文件就是winge的意义所在。Boost_DEBUG将导致将BOOST环境转储到窗口中。 注意:确保日志窗口中的LIBUSB_FOUND = TRUE。似乎LIBUSB是“滑”的,因为某种原因而退出了配置。这可能是cmake 3.0.0中的一些微妙问题。再次检查LIBUSB_*变量,并配置/生成直到is工作为止。

打开VS2010,打开UHD.sln“解决方案”文件,就会出现许多可执行文件。建造- 10分钟后应该全部建成。

选择INSTALL将把二进制文件放在用CMAKE_INSTALL_PREFIX指定的目录中。

如果安装了二进制文件和映像,则

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

代码语言:javascript
复制
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配置重新创建解决方案树。然后,VS2010构建将生成项目列表中的新条目。

Cmake有一个方便的“显示更改”,因此这些是我更改为UHD基线的最终文档:

命令行选项:

代码语言:javascript
复制
-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
票数 2
EN

Stack Overflow用户

发布于 2017-11-06 15:52:33

以上只是对所有在用NSIS构建二进制安装程序有困难的人的一个补充(为了更好地理解,我复制了上面的路径):如果构建失败了,错误“!宏:名为"RemoveSection”的宏已经存在/找到了,“只需在目录RemoveSection中编辑NSIS项目文件即可。搜索"RemoveSection“并将每个条目替换为"RemoveSection_CPack”。更改NSIS项目文件后,只需右键单击NSIS项目文件,然后单击“编译NSIS脚本”。NSIS将打开并正在构建二进制安装程序。

这至少应该在NSIS 3.02.1之前起作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25161203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档