I am trying to build GNU Radio from source on Windows 10 (20H2 build 19042.906) 
following the instructions here: 
https://github.com/gnieboer/gnuradio_windows_build_scripts#installation--build 
(I used the 'master' branch of that repository)

The build process runs for a few hours building all the dependencies (including 
boost), but when it gets to building the uhd dependency, it fails.

The log file 
C:\gr-build\src-stage1-dependencies\uhd\host\build\CMakeFiles\CMakeError.log 
has this error message:

Link:
C:\Program Files (x86)\Microsoft Visual 
Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\HostX64\x64\link.exe 
/ERRORREPORT:QUEUE /OUT:".\CompilerIdCXX.exe" /INCREMENTAL:NO /NOLOGO 
/LIBPATH:"C:\gr-build\src-stage1-dependencies\vcpkg\scripts\buildsystems\msbuild\..\..\..\installed\x64-windows\debug\lib"
 
/LIBPATH:"C:\gr-build\src-stage1-dependencies\vcpkg\scripts\buildsystems\msbuild\..\..\..\installed\x64-windows\debug\lib\manual-link"
 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib 
shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib 
"C:\gr-build\src-stage1-dependencies\vcpkg\scripts\buildsystems\msbuild\..\..\..\installed\x64-windows\debug\lib\*.lib"
 /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed 
/PDB:".\CompilerIdCXX.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT 
/IMPLIB:".\CompilerIdCXX.lib" /MACHINE:X64 Debug\CMakeCXXCompilerId.obj
LINK : fatal error LNK1181: cannot open input file 'boost_chrono-vc140-mt.lib' 
[C:\gr-build\src-stage1-dependencies\uhd\host\build\CMakeFiles\3.19.4\CompilerIdCXX\CompilerIdCXX.vcxproj]
Done Building Project 
"C:\gr-build\src-stage1-dependencies\uhd\host\build\CMakeFiles\3.19.4\CompilerIdCXX\CompilerIdCXX.vcxproj"
 (default targets) -- FAILED.

Build FAILED.



The problem seems to be that the boost build installed the library 
'boost_chrono-vc140-mt.lib' under 
C:\gr-build\src-stage1-dependencies\vcpkg\installed\x64-windows\lib\boost_chrono-vc140-mt.lib,
 while the link command is instead looking for 
C:\gr-build\src-stage1-dependencies\vcpkg\scripts\buildsystems\msbuild\..\..\..\installed\x64-windows\debug\lib\*.lib
 (in other words, it has an extra 'debug' in the path before 'lib').


I also looked in the directory searched for by the link command above (i.e. 
C:\gr-build\src-stage1-dependencies\vcpkg\installed\x64-windows\debug\lib), and 
I do see a library with a very similar name: boost_chrono-vc140-mt-gd.lib (note 
the extra '-gd' at the end of its name), so perhaps the link command should 
have tried to look for that instead. Not really sure.


Since I am not very familiar with the way GNU Radio and its dependencies get 
built under Windows, at this point I am wondering if I should try to either:
- figure out how to remove the extra 'debug' directory in the uhd link command 
(probably by changing something in the cmake configuration), or
- figure out why the boost build installed the library 
'boost_chrono-vc140-mt.lib' in the wrong path, or
- figure out if in this case the uhd link command is correct, but the uhd build 
should have been looking for the library with a slightly different name: 
boost_chrono-vc140-mt-gd.lib (and where that gets selected in the uhd config)


It is very possibly something I did wrong, but I wanted to ask if anyone has 
seen a similar problem when building GNU Radio from source on Windows, and if 
so how they solved it.


Thanks in advance,
Franco Venturi - K4VZ

Reply via email to