Hugin 2016.0 beta compile error

42 views
Skip to first unread message

Andreas Metzler

unread,
Jan 23, 2016, 12:31:52 PM1/23/16
to hugi...@googlegroups.com
Hello,

starting with version in 2016.0
src/hugin_base/hugin_utils/utils.cpp has started calling
XOpenDisplay() for
on

#ifdef _WIN32
...
#elif defined __APPLE__
#else
XOpenDisplay()
#endif

However -lX11 is missing from the linker line:
---------------------------
[ 20%] Linking CXX shared library libhuginbase.so
cd /tmp/HUGIN/hugin-2016.0.0/obj-x86_64-linux-gnu/src/hugin_base && /usr/bin/cmake -E cmake_link_script CMakeFiles/huginbase.dir/link.txt --verbose=1
/usr/lib/ccache/c++ -fPIC -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wdate-time -D_FORTIFY_SOURCE=2 --std=c++11 -Wl,-z,relro -Wl,--as-needed -Wl,-z,defs -fopenmp -shared -Wl,-soname,libhuginbase.so.0.0 -o libhuginbase.so.0.0 CMakeFiles/huginbase.dir/algorithms/nona/NonaFileStitcher.cpp.o CMakeFiles/huginbase.dir/algorithms/basic/CalculateCPStatistics.cpp.o CMakeFiles/huginbase.dir/algorithms/basic/CalculateMeanExposure.cpp.o CMakeFiles/huginbase.dir/algorithms/basic/CalculateOptimalScale.cpp.o CMakeFiles/huginbase.dir/algorithms/basic/CalculateOptimalROI.cpp.o CMakeFiles/huginbase.dir/algorithms/basic/RotatePanorama.cpp.o CMakeFiles/huginbase.dir/algorithms/basic/TranslatePanorama.cpp.o CMakeFiles/huginbase.dir/algorithms/basic/StraightenPanorama.cpp.o CMakeFiles/huginbase.dir/algorithms/basic/CalculateOverlap.cpp.o CMakeFiles/huginbase.dir/algorithms/basic/LayerStacks.cpp.o CMakeFiles/huginbase.dir/algorithms/nona/CalculateFOV.cpp.o CMakeFiles/huginbase.dir/algorithms/nona/CenterHorizontally.cpp.o CMakeFiles/huginbase.dir/algorithms/nona/FitPanorama.cpp.o CMakeFiles/huginbase.dir/algorithms/nona/ComputeImageROI.cpp.o CMakeFiles/huginbase.dir/algorithms/optimizer/ImageGraph.cpp.o CMakeFiles/huginbase.dir/algorithms/optimizer/PhotometricOptimizer.cpp.o CMakeFiles/huginbase.dir/algorithms/optimizer/PTOptimizer.cpp.o CMakeFiles/huginbase.dir/algorithms/point_sampler/PointSampler.cpp.o CMakeFiles/huginbase.dir/algorithms/control_points/CleanCP.cpp.o CMakeFiles/huginbase.dir/appbase/ProgressDisplay.cpp.o CMakeFiles/huginbase.dir/huginapp/CachedImageRemapper.cpp.o CMakeFiles/huginbase.dir/huginapp/ImageCache.cpp.o CMakeFiles/huginbase.dir/hugin_math/eig_jacobi.cpp.o CMakeFiles/huginbase.dir/hugin_math/graph.cpp.o CMakeFiles/huginbase.dir/hugin_math/Matrix3.cpp.o CMakeFiles/huginbase.dir/hugin_math/Vector3.cpp.o CMakeFiles/huginbase.dir/hugin_utils/alphanum.cpp.o CMakeFiles/huginbase.dir/hugin_utils/utils.cpp.o CMakeFiles/huginbase.dir/hugin_utils/platform.cpp.o CMakeFiles/huginbase.dir/lensdb/LensDB.cpp.o CMakeFiles/huginbase.dir/nona/SpaceTransform.cpp.o CMakeFiles/huginbase.dir/nona/Stitcher1.cpp.o CMakeFiles/huginbase.dir/nona/Stitcher2.cpp.o CMakeFiles/huginbase.dir/nona/Stitcher3.cpp.o CMakeFiles/huginbase.dir/nona/Stitcher4.cpp.o CMakeFiles/huginbase.dir/nona/Stitcher.cpp.o CMakeFiles/huginbase.dir/nona/StitcherOptions.cpp.o CMakeFiles/huginbase.dir/panodata/ControlPoint.cpp.o CMakeFiles/huginbase.dir/panodata/Lens.cpp.o CMakeFiles/huginbase.dir/panodata/Mask.cpp.o CMakeFiles/huginbase.dir/panodata/Panorama.cpp.o CMakeFiles/huginbase.dir/panodata/PanoramaOptions.cpp.o CMakeFiles/huginbase.dir/panodata/PanoramaVariable.cpp.o CMakeFiles/huginbase.dir/panodata/PTScriptParsing.cpp.o CMakeFiles/huginbase.dir/panodata/SrcPanoImage.cpp.o CMakeFiles/huginbase.dir/panodata/ImageVariableGroup.cpp.o CMakeFiles/huginbase.dir/panodata/StandardImageVariableGroups.cpp.o CMakeFiles/huginbase.dir/panodata/Exiv2Helper.cpp.o CMakeFiles/huginbase.dir/panotools/PanoToolsInterface.cpp.o CMakeFiles/huginbase.dir/panotools/PanoToolsOptimizerWrapper.cpp.o CMakeFiles/huginbase.dir/panotools/PanoToolsUtils.cpp.o CMakeFiles/huginbase.dir/panotools/PanoToolsTransformGPU.cpp.o CMakeFiles/huginbase.dir/vigra_ext/emor.cpp.o CMakeFiles/huginbase.dir/vigra_ext/ImageTransformsGPU.cpp.o -lboost_filesystem -lboost_system -lpthread ../foreign/levmar/libhuginlevmar.a -lvigraimpex -lboost_filesystem -lboost_system -lexiv2 -lpano13 -ltiff -lGLU -lGL -lGLEW -lpthread -lsqlite3 -llcms2 -lboost_filesystem -lboost_system -lvigraimpex -lexiv2 -lpano13 -ltiff -lGLU -lGL -lGLEW -lsqlite3 -llcms2 -Wl,-rpath,::::::::::::::
CMakeFiles/huginbase.dir/hugin_utils/utils.cpp.o: In function `hugin_utils::CreateContext(int*, char**)':
/tmp/HUGIN/hugin-2016.0.0/src/hugin_base/hugin_utils/utils.cpp:609: undefined reference to `XOpenDisplay'
/tmp/HUGIN/hugin-2016.0.0/src/hugin_base/hugin_utils/utils.cpp:634: undefined reference to `XCreateColormap'
/tmp/HUGIN/hugin-2016.0.0/src/hugin_base/hugin_utils/utils.cpp:638: undefined reference to `XCreateWindow'
CMakeFiles/huginbase.dir/hugin_utils/utils.cpp.o: In function `hugin_utils::DestroyContext()':
/tmp/HUGIN/hugin-2016.0.0/src/hugin_base/hugin_utils/utils.cpp:665: undefined reference to `XFree'
/tmp/HUGIN/hugin-2016.0.0/src/hugin_base/hugin_utils/utils.cpp:661: undefined reference to `XFreeColormap'
/tmp/HUGIN/hugin-2016.0.0/src/hugin_base/hugin_utils/utils.cpp:657: undefined reference to `XDestroyWindow'
/tmp/HUGIN/hugin-2016.0.0/src/hugin_base/hugin_utils/utils.cpp:669: undefined reference to `XCloseDisplay'
/tmp/HUGIN/hugin-2016.0.0/src/hugin_base/hugin_utils/utils.cpp:669: undefined reference to `XCloseDisplay'
collect2: error: ld returned 1 exit status
src/hugin_base/CMakeFiles/huginbase.dir/build.make:1500: recipe for target 'src/hugin_base/libhuginbase.so.0.0' failed
make[4]: *** [src/hugin_base/libhuginbase.so.0.0] Error 1
make[4]: Leaving directory '/tmp/HUGIN/hugin-2016.0.0/obj-x86_64-linux-gnu'
CMakeFiles/Makefile2:334: recipe for target 'src/hugin_base/CMakeFiles/huginbase.dir/all' failed
make[3]: *** [src/hugin_base/CMakeFiles/huginbase.dir/all] Error 2
---------------------------

I have come up with attached preliminary patch, however there seems to
be a small problem left, the patch adds -lX11 twice to the resulting
linker line:

/usr/lib/ccache/c++ -fPIC -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wdate-time -D_FORTIFY_SOURCE=2 --std=c++11 -Wl,-z,relro -Wl,--as-needed -Wl,-z,defs -fopenmp -shared -Wl,-soname,libhuginbase.so.0.0 -o libhuginbase.so.0.0 [object.files.o] -lboost_filesystem -lboost_system -lpthread -lX11 ../foreign/levmar/libhuginlevmar.a -lvigraimpex -lboost_filesystem -lboost_system -lexiv2 -lpano13 -ltiff -lGLU -lGL -lGLEW -lpthread -lsqlite3 -llcms2 -lboost_filesystem -lboost_system -lX11 -lvigraimpex -lexiv2 -lpano13 -ltiff -lGLU -lGL -lGLEW -lsqlite3 -llcms2 -Wl,-rpath,::::::::::::::

cu Andreas

--
`What a good friend you are to him, Dr. Maturin. His other friends are
so grateful to you.'
`I sew his ears on from time to time, sure'
50_missingx11_dep.patch

T. Modes

unread,
Jan 24, 2016, 4:20:44 AM1/24/16
to hugin and other free panoramic software, amet...@bebt.de
Hi Andreas,

I committed your (slightly) modified patch.

 
Am Samstag, 23. Januar 2016 18:31:52 UTC+1 schrieb Andreas Metzler:
Hello,

starting with version in 2016.0
src/hugin_base/hugin_utils/utils.cpp has started calling
XOpenDisplay() for
on


But what I don't understand: the code was committed 8 months ago. Nobody complained so far. Also when I tested the code on Linux, the patch was not necessary.
What's different in your environment, that the patch is needed?

Thomas

Andreas Metzler

unread,
Jan 24, 2016, 11:39:08 AM1/24/16
to hugi...@googlegroups.com
On 2016-01-24 "T. Modes" <Thomas...@gmx.de> wrote:
[...]
> But what I don't understand: the code was committed 8 months ago. Nobody
> complained so far. Also when I tested the code on Linux, the patch was not
> necessary.
> What's different in your environment, that the patch is needed?

Hello,

You might have libtool la files on your system which automatically
pull in the dependency. Also we have -Wl,--as-needed -Wl,-z,defs in
LDFLAGS.
Reply all
Reply to author
Forward
0 new messages