![]() Registered Member ![]()
|
Not sure. Command
All *.dll files in C:\dev with 'boost' in path:
|
![]() Registered Member ![]()
|
You can see the last line of your DLL list and see it there. The automatic copying isn't working for some reason, so you will have to manually duplicate the file and rename it like it says in the error output. The DLLs are the same file, just have different file names.
|
![]() KDE Developer ![]()
|
Trust me, that config is exactly there to avoid problems between devs that commit from different platforms, it should be the norm; the point of autocrlf is to change line endings only locally, and then commit with whatever line endings there are on git, so no one get their line endings mixed. Also i don't see how it could give issues since it's a local change and Windows is supposed to work with CRLF line endings and not with LF. And also for the binary difference.. different from what? All Windows devs should use it, if they all use it, provided that they have the same identical Window setup, the binaries will be identical. Even for the example of text files you do, if the application is not cross-platform (as in support CRLF on Windows and LF on Linux) that's an application issue that has to be solved. |
![]() Registered Member ![]()
|
I can invest some time to fix build errors, which are not known for Krita developers, and specific for my environment. I known, large C++ codebases are very sensitive to little environment differences, and it's hard to debug build on another's computer.
But I don't want to waste time on build problems, which can be fixed in repository with simple known fix, or have known workarounds. Even if workaround is very simple ("dude, just skip this library" or "comment out this line in CMakeLists.txt") - it can take a lot of time to derive it out, when it is unknown. Thanks to guruguru for concrete steps to solve build problem with crashed "patch" ( "So I had to convert linebreaks for these .patch and .diff files manually" ) Let me create digest of my compilation problems: Crashed patch: - solved with locally modified files, thanks to guruguru for exact solution help (I had replaced UNIX eols to Windows EOL with sed script, find ./ -name '*.patch' -or -name '*.diff' | xargs sed -i 's/\([^\r]\|\)$/\1\r/' ) Boost: update: boost build fixed, see next discussion, thanks to Stefano Bonicatti for invalid compiler version detection hint. Command: cmake --build . --config RelWithDebInfo --target ext_boost Error message: Error copying file "/dev/i/lib/boost_system-vc-mt-1_55.dll" to "/dev/i/lib/boost_system-vc140-mt-1_55.dll". There are only boost_system-vc110-mt-1_55.dll and boost_system-vc110-mt-1_55.dll files in c:\dev\i\lib More diagnostic - viewtopic.php?f=139&t=131607&sid=c4174f8876953802968056e84969e484#p353476 Libraries ext_lcms2, ext_libraw, ext_openjpeg, similar link errors: update: there is existing C:\soft\py27\Library\lib\tiff.lib , and CMake generates project files with link to this library. After I had deleted the offending python Lib folder and regenerate project files, build of these dependencies had been successful. C:\dev\b\ext_lcms2\ext_lcms2-prefix\src\ext_lcms2-build\bin\RelWithDebInfo\tificc.exe : fatal error LNK1120: 5 unresolved externals [C:\dev\b\ext_lcms2\ext_lcms2-prefix\src\ext_lcms2-build\utils\tificc.vcxproj] [C:\dev\b\ext_lcms2\ext_lcms2.vcxpro tiff.lib(snprintf.obj) : error LNK2019: unresolved external symbol __imp__vscprintf referenced in function _TIFF_vsnprintf_f [C:\dev\b\ext_lcms2\ext_lcms2-prefix\src\ext_lcms2-build\utils\tificc.vcxproj] [C:\dev\b\ext_lcms2\ext_lcms2.vcxproj] tiff.lib(snprintf.obj) : error LNK2019: unresolved external symbol __imp__vsnprintf_s referenced in function _TIFF_vsnprintf_f [C:\dev\b\ext_lcms2\ext_lcms2-prefix\src\ext_lcms2-build\utils\tificc.vcxproj] [C:\dev\b\ext_lcms2\ext_lcms2.vcxproj] tiff.lib(tif_codec.obj) : error LNK2019: unresolved external symbol __imp_sprintf referenced in function _notConfigured [C:\dev\b\ext_lcms2\ext_lcms2-prefix\src\ext_lcms2-build\utils\tificc.vcxproj] [C:\dev\b\ext_lcms2\ext_lcms2.vcxproj] tiff.lib(tif_unix.obj) : error LNK2019: unresolved external symbol __imp___iob_func referenced in function unixWarningHandler [C:\dev\b\ext_lcms2\ext_lcms2-prefix\src\ext_lcms2-build\utils\tificc.vcxproj] [C:\dev\b\ext_lcms2\ext_lcms2.vcxproj] tiff.lib(tif_unix.obj) : error LNK2019: unresolved external symbol __imp_vfprintf referenced in function unixWarningHandler [C:\dev\b\ext_lcms2\ext_lcms2-prefix\src\ext_lcms2-build\utils\tificc.vcxproj] [C:\dev\b\ext_lcms2\ext_lcms2.vcxproj] cmake --build . --config RelWithDebInfo --target ext_kwindowsystem - lot of compilation errors: https://paste.kde.org/pznssj3ho update: seems to be fixed, I have QT headers in two places, inside python C:\soft\py27\Library\include\ and C:\Qt\5.6\msvc2015_64\include\ , I temporarily removed all Qt* (QtCore, QtGui, Qt, ...) folders from C:\soft\py27\Library\include\ Krita itself - seems now I can't check which Krita problems I have, because I don't have dependencies built. At current time Krita build errors are the following (I didn't expect succesfull build without dependencies, but maybe it failed earlier due other reasons): https://paste.kde.org/p4bxkuw0l
Last edited by dobrokotov on Sun Mar 20, 2016 10:43 pm, edited 5 times in total.
|
![]() KDE Developer ![]()
|
Quoting myself here for boost:
As for the patches, we just need to change to Unix line endings and devs use autocrlf true, then it shouldn't be an issue anymore. Try first to have boost correctly detected, otherwise you'll have weird errors later with other libs. |
![]() Registered Member ![]()
|
Git is not the only way to transfer files between build environments. One filesystem can be mounted to different OS. It is exactly my case - NTFS filesystem in cygwin can be used both in "linux" or "windows" environment. And git thinks that environment is linux (with linux EOL), but I want to make Windows build. You can also think of example "get repository on Linux machine and copy (rsync) it to Windows machine due security/technical problems". Or "tarball with sources". All this can be solved or declared as "wrong workflow", but it's better not to create problems, than to solve/arguing is workflow wrong or not. Different source files will give another source of unexpected surprises, to make build dependent on git config. Yes, we can say "different line endings should not cause problems", but it will. And it is not always clear for large codebase, "text" file or binary. Is zipped text section in PNG-file icon binary or text? Why hash-sum and size of png icon should be different on different systems after build? Reversed example: If png file is under version control - can git change EOL inside text sections of this PNG file? Different source on different machines gives subtle problems.
Thanks, this note about 110/140vc++ detection will definitely help if I or someone else will investigate problem of this part of build. Still, this does not give exact steps how to fix makefiles, just gives hint where start to go (which is very valuable too)
Thanks for this too, I'll try this when I build all other Krita dependencies, and done Krita compilation step, and start to link Krita executable. I can't check for now, can this help or not, because I can't move forward to Krita compilation while other build problems present. It is impossible to check renaming libraries solution, until I approach Krita final executable linking.
Last edited by dobrokotov on Sun Mar 20, 2016 4:28 pm, edited 7 times in total.
|
![]() KDE Developer ![]()
|
Keep in mind that the instructions written in the README are to follow in order, so you got to do the boost step before doing the others. You get an error while trying to copy "/dev/i/lib/boost_system-vc-mt-1_55.dll" to "/dev/i/lib/boost_system-vc140-mt-1_55.dll", you just need to take your version of boost .dll inside the lib folder and copy it with the name boost_system-vc140-mt-1_55.dll. |
![]() Registered Member ![]()
|
I have two Visual Studio installed. Environment variables are quite clean, and do not mix paths/common variable names, but have both VS110COMNTOOLS and VS140COMNTOOLS variables being set.
And despite explicitly called C:\soft\msvc14\VC\bin\amd64\vcvars64.bat , boost compilation script ( C:\dev\b\ext_boost\ext_boost-prefix\src\ext_boost\tools\build\v2\engine\build.bat ) doesn't check version set from vcvars64, instead it uses first found globally defined VS110COMNTOOLS.
Seems, boost developers are responsible to detect proper toolset, when both are installed or when toolset has been changed, but only one is set as current by vcvars64/vcvars32. Maybe it can be overwritten and fixed on Krita side, with explicit boost toolset selection, to avoid additional lines in build README. I have removed VS110COMNTOOLS from system environment variables editor (simple unsetting the variable "set VS110COMNTOOLS=" from console didn't help), so ext_boost dependency build was finished as successful. Thanks for Stefano Bonicatti, due your advice I managed to find source of the problem much faster. Other problems are still present.
Last edited by dobrokotov on Sun Mar 20, 2016 9:12 pm, edited 1 time in total.
|
![]() Registered Member ![]()
|
Ok, let's try to do with something with QT compilation errors.
Seems, I have two QT, and both are in compiler include paths. First one: C:\soft\py27\Library\include\QtCore - ( my system python installed from https://www.continuum.io/downloads ) Second one: C:\Qt\5.6\msvc2015_64\include\QtCore During compilation I have mishmash of headers from both installations, and this gives unpredictable compiler errors. What is proper way to avoid both QT in one project? Modification of system python, to delete QT from system python, seems weird, but I can try. Visual C++ Compiler command line during build:
|
![]() Registered Member ![]()
|
Cause of link errors with image libraries is existing C:\soft\py27\Library\lib\tiff.lib , and CMake generates project files with path to this library.
I have removed files with path to python tiff.lib, removed C:\soft\py27\Library\lib, and have regenerated project files. After this dependencies have been built. Seems, ext_openjpeg, ext_lcms2 and ext_libraw build were finished as successfull. Still, when I start to build Krita, I got message
And this is my 100-th post on this forum. |
![]() Registered Member ![]()
|
It works! It works! http://dobrokot.ru/pics/i2016-03-21__04-01-11_268kb.png
Thanks all for help. |
![]() Registered Member ![]()
|
Registered users: Baidu [Spider], Bing [Bot], Google [Bot], Yahoo [Bot]