美好的一天。
请用CMake for Windows XP详细说明构建过程UHD。 我关注the instructions from the developer,但它们很短,我第一次与CMake合作。 我下载并安装了所有必要的组件:CMake,Boost,Python with Cheetah和Doxygen。为简单起见,所有这些组件都安装在驱动器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_DIR
??),如何包含LIBUHD
(我试图手动创建变量ENABLE_LIBUHD
键入BOOL
并为其指定值1 - 但没有任何更改。
一切都很不清楚,请详细说明。
谢谢!
答案 0 :(得分:2)
您想加入usrp-users邮件列表。
我设法失去了我的构建,失去了我的公式,所以我不得不重现它。我现在认为我已经完成了这个过程,我将改进我在这里发布的公式:
1)Git the source - git clone git://github.com/EttusResearch/uhd.git我把GIT改为c:\ ettus_b210 \ uhd_build,它创建了目录“uhd”
2)安装提升http://sourceforge.net/projects/boost/files/boost-binaries/我使用了1_55_0。此发行版将安装在c:\ local \ boost_1_55_0中选择构建环境的构建 - 我使用的是Windows 32位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)二进制文件。我推荐Python 2.7,它带有简易安装脚本,可以帮助你获得猎豹。 (如果你安装了MATLAB,那么你可能有Python2.7) https://www.python.org/download/
安装猎豹 首先安装Python安装工具 https://pypi.python.org/pypi/setuptools 打开cmd窗口并执行它 下载并解压缩包后,在cmd窗口中运行easy_install cheetah
检查正在调用哪个Python版本。
这里的简单方法是安装Python27,然后使用easy_install脚本安装Cheetah。
如果在cmd窗口中运行以下命令显示与python 2.7不同的内容,则修改注册表项(Local Machine和ROOT)。 在命令行窗口中运行:
ftype|find /I "python"
你应该得到类似的东西:
Python.CompiledFile="C:\Python27\python.exe" "%1" %*
Python.File="C:\Python27\python.exe" "%1" %*
Python.NoConFile="C:\Python27\pythonw.exe" "%1" %*
同时确保这些条目具有以下条目中显示的正确版本:
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 \ build
的目录注意:这是您想要构建内容的选择 - 它不会在源目录中构建
启用高级视图
Boost_DEBUG =真
注意:此标志的重要性
BOOST_INCLUDE_DIR = C:\本地\ boost_1_55_0
注意:这是包含目录“boost”的目录,这是包含boost标头的方式
BOOST_LIBRARYDIR = C:\本地\ boost_1_55_0 \ LIB32-MSVC-10.0
注意:我使用的是VS2010,这是该构建环境的库。
LIBUSB_INCLUDE_DIRS = C:\ libusbx \ libusbx-1.0.18赢\包括\ libusbx-1.0
LIBUSB_LIBRARIES = C:\ libusbx \ libusbx-1.0.18赢\ MS32 \ DLL \的libusb-1.0.lib
注意:这是DLL子目录中的.lib文件 - 他们希望库本身不是包含目录
CMAKE_INSTALL_PREFIX = C:/ ettus_b210 /安装
注意:默认它构建为“C:\ Program Files(x86)\ UHD”,它将覆盖下载的工作二进制文件。雅不想这样做。
我已经禁用了B2x0不需要的驱动程序组件,但是打开所有这些组件的构建也可以。
[配置]和[生成]不应该有任何错误。
注意:你会看到“Boost_DIR-NOTFOUND”......这个boost安装不包含.cmake文件,所以缺少这个.cmake文件就是winge的意思。 Boost_DEBUG将导致BOOST环境被转储到窗口中。
注意:在日志窗口中确定LIBUSB_FOUND = TRUE。似乎LIBUSB“滑”并且出于某种原因从配置中退出。这可能是cmake 3.0.0的一些微妙问题。再次检查LIBUSB_ *变量并配置/生成直到有效。
打开VS2010,打开UHD.sln“解决方案”文件,将显示许多可执行文件。 [构建] [解决方案] - 10分钟后应该全部建成。
选择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
答案 1 :(得分:-1)
对于所有在使用NSIS构建二进制安装程序时遇到问题的人来说,这只是一个补充(我已经复制了上面的路径以便更好地理解): 如果构建失败并显示错误“!macro:macro named”RemoveSection“已存在/找到”只需编辑目录c:/ ettus_b210 / uhd_build / uhd / build_CPack_Packages / win32 / NSIS中的NSIS项目文件。搜索“RemoveSection”并用“RemoveSection_CPack”替换每个条目。更改NSIS项目文件后,只需右键单击NSIS项目文件,然后单击“编译NSIS脚本”。 NSIS打开并正在构建二进制安装程序。
这至少应该在NSIS 3.02.1之前起作用。