Opened 9 years ago
Last modified 9 years ago
#8934 new Bugs
b2 : failed to write output file
Reported by: | Owned by: | Vladimir Prus | |
---|---|---|---|
Milestone: | To Be Determined | Component: | build |
Version: | Boost 1.54.0 | Severity: | Problem |
Keywords: | Cc: |
Description
Hello,
Executing b2.exe within cmd.exe or powershell :
and
Building boost_1_54_0 with :
b2 --debug-building --prefix=%USERPROFILE%\pkg\indie\boost address-model=64 --exec-prefix=%USERPROFILE%\programs\boost --libdir=%USERPROFILE%\pkg\lib --includedir=%USERPROFILE%\pkg\include --build-type=complete --build-dir=..\tmp pch=off debug-symbols=on debug-store=database install 2>&1 >> ..\boostbuild.txt
results in an error :
failed to write output file '..\tmp\boost\bin.v2\libs\program_options\build\msvc-11.0\release\address-model-64\debug-store-database\debug-symbols-on\link-static\pch-off\runtime-link-static\threading-multi\libboost_program_options-vc110-mt-s-1_54.lib.rsp'!
My initial thoughts path name is it approaching the MAX_PATH, so I tried redirecting echo to the name file within cmd.exe; it resulted in The system cannot find the path specified.
In powershell, echo redirection was successful but the build still failed at the same point.
The full path length is 246 : python -c "print(len(r'C:\Users\Arkhe_2\pkg\src\tmp\boost\bin.v2\libs\program_options\build\msvc-11.0\release\address-model-64\debug-store-database\debug-symbols-on\link-static\pch-off\runtime-link-static\threading-multi\libboost_program_options-vc110-mt-s-1_54.lib.rsp'))"
File system is NTFS located on a usb interconnected hard drive.
Thanks for the great work.
Attachments (1)
Change History (5)
by , 9 years ago
Attachment: | openfile.c added |
---|
comment:1 by , 9 years ago
Substituted occurrences of fopen in bjam/b2 source file with openfile.c which simply converts the arguments to wchar_t; prefixes the path with the voodoo of \ \ ? \ which allows very long path names in windows; then calls the _wfopen.
Boost is now building fine.
openfile is not meant to be a patch, just a quick fix that demonstrates a primitive resolution.
comment:2 by , 9 years ago
Component: | None → build |
---|---|
Owner: | set to |
follow-up: 4 comment:3 by , 9 years ago
You can use --abbreviate-paths or --hash to limit the path lengths. While it would be better for b2 to handle these paths safely, it's better to avoid them, as other tools can also have problems with them.
comment:4 by , 9 years ago
Replying to steven_watanabe:
You can use --abbreviate-paths or --hash to limit the path lengths. While it would be better for b2 to handle these paths safely, it's better to avoid them, as other tools can also have problems with them.
Thanks Steve!
fopen substitute