On 03/06/2012 08:00 PM, David C. Rankin wrote:
On 03/06/2012 07:37 PM, David C. Rankin wrote:
On 03/06/2012 07:09 PM, Darrell Anderson wrote:
Ran
into another issue with tdegraphics that I can't
solve by a dependency review:
[ 31%] Building CXX object
libkscan/CMakeFiles/kscan-shared.dir/imgscaninfo.cpp.o
Linking CXX shared library libkscan.so
/usr/bin/ld: cannot find
-lsane-Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu-L/usr/lib
collect2: ld returned 1 exit status
make[2]: *** [libkscan/libkscan.so.1.0.0] Error 1
make[1]: *** [libkscan/CMakeFiles/kscan-shared.dir/all]
Error 2
make: *** [all] Error 2
Is this a CMake issue? Linker error? What to look
for?
Do you have SANE installed?
Check your build log for the following:
-- checking for 'libkscan'
-- ok, activated for build
Check your CMakeCache.txt for this:
//Build libkscan
BUILD_LIBKSCAN:BOOL=ON
Darrell
Hmm... yes on both accounts:
-- checking for 'libkscan'
-- ok, activated for build
[19:35 providence:/home/david/bld/david/build/src/build] # grep -i libkscan
CMakeCache.txt
//Build libkscan
BUILD_LIBKSCAN:BOOL=ON
libksane_BINARY_DIR:STATIC=/build/src/build/libkscan
libksane_SOURCE_DIR:STATIC=/build/src/tdegraphics/libkscan
Is this a new gcc issue? I have gcc 4.6.2-7... How would I check?
I cannot read cmake very well, but it looks like it gets to about line 584 in
libkscan/CMakeFiles/kscan-shared.dir/build.make:
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold
"Linking CXX shared library libkscan.so"
cd /build/src/build/libkscan && $(CMAKE_COMMAND) -E cmake_link_script
CMakeFiles/kscan-shared.dir/link.txt --verbose=$(VERBOSE)
cd /build/src/build/libkscan && $(CMAKE_COMMAND) -E
cmake_symlink_library libkscan.so.1.0.0 libkscan.so.1 libkscan.so
libkscan/libkscan.so.1: libkscan/libkscan.so.1.0.0
libkscan/libkscan.so: libkscan/libkscan.so.1.0.0
Because it gets to:
[ 31%] Building CXX object libkscan/CMakeFiles/kscan-shared.dir/imgscaninfo.cpp.o
Then dies. Any ideas?
I think I'm getting closer to at least finding where things are going wrong.
Can someone confirm the order that the build system will go though the files in
the libkscan/CMakeFiles/kscan-shared.dir? I don't know how the intricacies work,
but it looks like it works something like this:
chroot/david/build/src/build/libkscan> ll CMakeFiles/
total 12
drwxr-xr-x 2 nobody nobody 4096 Mar 6 19:35 kscan-shared.dir
-rw-r--r-- 1 nobody nobody 970 Mar 6 19:30 CMakeDirectoryInformation.cmake
-rw-r--r-- 1 nobody nobody 2 Mar 6 19:30 progress.marks
Path information is set from CMakeDirectoryInformation.cmake
21:27 nirvana:/mnt/nv1/home/chroot/david/build/src/build/libkscan> cat
CMakeFiles/CMakeDirectoryInformation.cmake
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 2.8
# Relative path conversion top directories.
SET(CMAKE_RELATIVE_PATH_TOP_SOURCE "/build/src/tdegraphics")
SET(CMAKE_RELATIVE_PATH_TOP_BINARY "/build/src/build")
# Force unix paths in dependencies.
SET(CMAKE_FORCE_UNIX_PATHS 1)
# The C and CXX include file search paths:
SET(CMAKE_C_INCLUDE_PATH
"libkscan"
"/build/src/tdegraphics/libkscan"
"/opt/trinity/include"
"/opt/tqt3/include"
"/opt/trinity/include/tqt"
)
<snip>
Then it drops into the CMakeFiles/kscan-shared.dir
chroot/david/build/src/build/libkscan> ll CMakeFiles/kscan-shared.dir/
total 1616
-rw-r--r-- 1 nobody nobody 50066 Mar 6 19:30 build.make
-rw-r--r-- 1 nobody nobody 1420 Mar 6 19:30 cmake_clean.cmake
-rw-r--r-- 1 nobody nobody 42307 Mar 6 19:35 CXX.includecache
-rw-r--r-- 1 nobody nobody 2830 Mar 6 19:30 DependInfo.cmake
-rw-r--r-- 1 nobody nobody 73257 Mar 6 19:35 depend.internal
-rw-r--r-- 1 nobody nobody 186988 Mar 6 19:35 depend.make
-rw-r--r-- 1 nobody nobody 58224 Mar 6 19:35 devselector.cpp.o
-rw-r--r-- 1 nobody nobody 24008 Mar 6 19:35 dispgamma.cpp.o
-rw-r--r-- 1 nobody nobody 579 Mar 6 19:30 flags.make
-rw-r--r-- 1 nobody nobody 32848 Mar 6 19:35 gammadialog.cpp.o
-rw-r--r-- 1 nobody nobody 118000 Mar 6 19:35 img_canvas.cpp.o
-rw-r--r-- 1 nobody nobody 38912 Mar 6 19:35 imgscaledialog.cpp.o
-rw-r--r-- 1 nobody nobody 3696 Mar 6 19:35 imgscaninfo.cpp.o
-rw-r--r-- 1 nobody nobody 22728 Mar 6 19:35 kgammatable.cpp.o
-rw-r--r-- 1 nobody nobody 178736 Mar 6 19:35 kscandevice.cpp.o
-rw-r--r-- 1 nobody nobody 144720 Mar 6 19:35 kscanoption.cpp.o
-rw-r--r-- 1 nobody nobody 47176 Mar 6 19:35 kscanoptset.cpp.o
-rw-r--r-- 1 nobody nobody 88552 Mar 6 19:35 kscanslider.cpp.o
-rw-r--r-- 1 nobody nobody 1742 Mar 6 19:30 link.txt
-rw-r--r-- 1 nobody nobody 33712 Mar 6 19:35 massscandialog.cpp.o
-rw-r--r-- 1 nobody nobody 119280 Mar 6 19:35 previewer.cpp.o
-rw-r--r-- 1 nobody nobody 668 Mar 6 19:30 progress.make
-rw-r--r-- 1 nobody nobody 78328 Mar 6 19:35 scandialog.cpp.o
-rw-r--r-- 1 nobody nobody 169960 Mar 6 19:35 scanparams.cpp.o
-rw-r--r-- 1 nobody nobody 45992 Mar 6 19:35 scansourcedialog.cpp.o
-rw-r--r-- 1 nobody nobody 31688 Mar 6 19:35 sizeindicator.cpp.o
Where it then reads the 'flags.txt, does make for 'build.make' and then
uses
'link.txt' for the linker. In this process, 'flags.txt' looks to have the
correct include information:
chroot/david/build/src/build/libkscan> cat CMakeFiles/kscan-shared.dir/flags.make
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 2.8
# compile CXX with /usr/bin/c++
CXX_FLAGS = -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector
--param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -DQT_NO_ASCII_CAST
-DQT_CLEAN_NAMESPACE -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION
-DQT_THREAD_SUPPORT -D_REENTRANT -include tqt.h -fPIC
-I/build/src/build/libkscan -I/build/src/tdegraphics/libkscan
-I/opt/trinity/include -I/opt/tqt3/include -I/opt/trinity/include/tqt
CXX_DEFINES = -Dkscan_shared_EXPORTS -DHAVE_CONFIG_H
The question is build.make -- is the symlink_library stuff correct? It looks
like it, but I don't know. This is where the build craters:
libkscan/libkscan.so.1.0.0: libkscan/CMakeFiles/kscan-shared.dir/link.txt
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold
"Linking CXX shared library libkscan.so"
cd /build/src/build/libkscan && $(CMAKE_COMMAND) -E cmake_link_script
CMakeFiles/kscan-shared.dir/link.txt --verbose=$(VERBOSE)
cd /build/src/build/libkscan && $(CMAKE_COMMAND) -E
cmake_symlink_library libkscan.so.1.0.0 libkscan.so.1 libkscan.so
libkscan/libkscan.so.1: libkscan/libkscan.so.1.0.0
libkscan/libkscan.so: libkscan/libkscan.so.1.0.0
Stuck -- How To Fix??
--
David C. Rankin, J.D.,P.E.