[CMake] help with shared-lib make failure

luxInteg lux-integ at btconnect.com
Sun Jun 17 04:34:29 EDT 2012


On Sunday 17 June 2012 08:35:07 Andreas Naumann wrote:
> Am 17.06.2012 01:39, schrieb luxInteg:
> > On Saturday 16 June 2012 09:45:56 luxInteg wrote:
> >> Greetings,
> >> 
> >> Its been about 1 year since  since I had a go at learning cmake.
> >> My current setup has these:- OS 64bit(AMD) cblfs linux, gcc-4.4.2,
> >> cmake-2.8.7
> >> 
> >> This is my current problem:
> >> My project has a  file  call this file1.c.
> >> CMake is used o generate makefile etc
> >> 
> >> When make  compiles file1.c  it compiles it to  file1.c.o
> >> 
> >> I have these directives in the CMake script
> >> 
> >> --1--add_library(file1-static  file1.c)
> >> --2--add_library(file1  shared file1.c)
> >> 
> >> --1-- executes and genetates a static library but  with --2-- I now get
> >> the error
> >> 
> >> usr/bin/ld/CMakeFiles/... file1.c.o  file format not recognised 
> >> treating as a linker script
> >> usr/bin/ld/CMakeFiles/... file1.c.o:1 syntax error
> >> collect2 ld returned 1 exit status
> >> 
> >> 
> >> I never had this problem before so advice on what I  have wrong or doing
> >> wrong would be much appreciated.
> > 
> > The linker for my project seems to require the object file(s) as   
> > file1.o as opposed to file1.c.o othewise it will not make a shared
> > library. I tried setting CMAKE_R_PATH as "${CMAKE_INSTALL_PREFIX}/lib"
> > and fiddled around with set_target_properties()  to no avail.
> > 
> > So are there simple scripts that can  convert the file1.c.o ihto file1.o 
> > or symlink to file1.o in
> > in the ${PROJECT_BINARY_DIR}  to execute  just after compilation and
> > before linking?
> > 
> > thanks in advance
> > luxInteg
> > --
> > 
> > Powered by www.kitware.com
> > 
> > Visit other Kitware open-source projects at
> > http://www.kitware.com/opensource/opensource.html
> > 
> > Please keep messages on-topic and check the CMake FAQ at:
> > http://www.cmake.org/Wiki/CMake_FAQ
> > 
> > Follow this link to subscribe/unsubscribe:
> > http://www.cmake.org/mailman/listinfo/cmake
> 
> Hallo Lux,
> 
> can you set the Makefiles to verbose mode, i.e. set the variabe
> CMAKE_VERBOSE_MAKEFILE to true and post the link commands?
> Possibly there is some error when using the linker.
> 
> Regards
> Andreas Naumann

thanks for your response the compile output i below:

cd ~/cblas && /usr/local/bin/cmake -E cmake_link_script 
CMakeFiles/gslcblas.dir/link.txt --verbose=1
/usr/bin/gcc  -fPIC -m64 -fPIC  -msse2  -shared -Wl,-soname,libgslcblas.so -o 
libgslcblas.so CMakeFiles/gslcblas.dir/sasum.c.o 
CMakeFiles/gslcblas.dir/saxpy.c.o CMakeFiles/gslcblas.dir/scasum.c.o 
CMakeFiles/gslcblas.dir/scnrm2.c.o CMakeFiles/gslcblas.dir/scopy.c.o 
CMakeFiles/gslcblas.dir/sdot.c.o CMakeFiles/gslcblas.dir/sdsdot.c.o 
CMakeFiles/gslcblas.dir/sgbmv.c.o CMakeFiles/gslcblas.dir/sgemm.c.o 
CMakeFiles/gslcblas.dir/sgemv.c.o CMakeFiles/gslcblas.dir/sger.c.o 
CMakeFiles/gslcblas.dir/snrm2.c.o CMakeFiles/gslcblas.dir/srot.c.o 
CMakeFiles/gslcblas.dir/srotg.c.o CMakeFiles/gslcblas.dir/srotm.c.o 
CMakeFiles/gslcblas.dir/srotmg.c.o CMakeFiles/gslcblas.dir/ssbmv.c.o 
CMakeFiles/gslcblas.dir/sscal.c.o CMakeFiles/gslcblas.dir/sspmv.c.o 
CMakeFiles/gslcblas.dir/sspr.c.o CMakeFiles/gslcblas.dir/sspr2.c.o 
CMakeFiles/gslcblas.dir/sswap.c.o CMakeFiles/gslcblas.dir/ssymm.c.o 
CMakeFiles/gslcblas.dir/ssymv.c.o CMakeFiles/gslcblas.dir/ssyr.c.o 
CMakeFiles/gslcblas.dir/ssyr2.c.o CMakeFiles/gslcblas.dir/ssyr2k.c.o 
CMakeFiles/gslcblas.dir/ssyrk.c.o CMakeFiles/gslcblas.dir/stbmv.c.o 
CMakeFiles/gslcblas.dir/stbsv.c.o CMakeFiles/gslcblas.dir/stpmv.c.o 
CMakeFiles/gslcblas.dir/stpsv.c.o CMakeFiles/gslcblas.dir/strmm.c.o 
CMakeFiles/gslcblas.dir/strmv.c.o CMakeFiles/gslcblas.dir/strsm.c.o 
CMakeFiles/gslcblas.dir/strsv.c.o CMakeFiles/gslcblas.dir/dasum.c.o 
CMakeFiles/gslcblas.dir/daxpy.c.o CMakeFiles/gslcblas.dir/dcopy.c.o 
CMakeFiles/gslcblas.dir/ddot.c.o CMakeFiles/gslcblas.dir/dgbmv.c.o 
CMakeFiles/gslcblas.dir/dgemm.c.o CMakeFiles/gslcblas.dir/dgemv.c.o 
CMakeFiles/gslcblas.dir/dger.c.o CMakeFiles/gslcblas.dir/dnrm2.c.o 
CMakeFiles/gslcblas.dir/drot.c.o CMakeFiles/gslcblas.dir/drotg.c.o 
CMakeFiles/gslcblas.dir/drotm.c.o CMakeFiles/gslcblas.dir/drotmg.c.o 
CMakeFiles/gslcblas.dir/dsbmv.c.o CMakeFiles/gslcblas.dir/dscal.c.o 
CMakeFiles/gslcblas.dir/dsdot.c.o CMakeFiles/gslcblas.dir/dspmv.c.o 
CMakeFiles/gslcblas.dir/dspr.c.o CMakeFiles/gslcblas.dir/dspr2.c.o 
CMakeFiles/gslcblas.dir/dswap.c.o CMakeFiles/gslcblas.dir/dsymm.c.o 
CMakeFiles/gslcblas.dir/dsymv.c.o CMakeFiles/gslcblas.dir/dsyr.c.o 
CMakeFiles/gslcblas.dir/dsyr2.c.o CMakeFiles/gslcblas.dir/dsyr2k.c.o 
CMakeFiles/gslcblas.dir/dsyrk.c.o CMakeFiles/gslcblas.dir/dtbmv.c.o 
CMakeFiles/gslcblas.dir/dtbsv.c.o CMakeFiles/gslcblas.dir/dtpmv.c.o 
CMakeFiles/gslcblas.dir/dtpsv.c.o CMakeFiles/gslcblas.dir/dtrmm.c.o 
CMakeFiles/gslcblas.dir/dtrmv.c.o CMakeFiles/gslcblas.dir/dtrsm.c.o 
CMakeFiles/gslcblas.dir/dtrsv.c.o CMakeFiles/gslcblas.dir/dzasum.c.o 
CMakeFiles/gslcblas.dir/dznrm2.c.o CMakeFiles/gslcblas.dir/caxpy.c.o 
CMakeFiles/gslcblas.dir/ccopy.c.o CMakeFiles/gslcblas.dir/cdotc_sub.c.o 
CMakeFiles/gslcblas.dir/cdotu_sub.c.o CMakeFiles/gslcblas.dir/cgbmv.c.o 
CMakeFiles/gslcblas.dir/cgemm.c.o CMakeFiles/gslcblas.dir/cgemv.c.o 
CMakeFiles/gslcblas.dir/cgerc.c.o CMakeFiles/gslcblas.dir/cgeru.c.o 
CMakeFiles/gslcblas.dir/chbmv.c.o CMakeFiles/gslcblas.dir/chemm.c.o 
CMakeFiles/gslcblas.dir/chemv.c.o CMakeFiles/gslcblas.dir/cher.c.o 
CMakeFiles/gslcblas.dir/cher2.c.o CMakeFiles/gslcblas.dir/cher2k.c.o 
CMakeFiles/gslcblas.dir/cherk.c.o CMakeFiles/gslcblas.dir/chpmv.c.o 
CMakeFiles/gslcblas.dir/chpr.c.o CMakeFiles/gslcblas.dir/chpr2.c.o 
CMakeFiles/gslcblas.dir/cscal.c.o CMakeFiles/gslcblas.dir/csscal.c.o 
CMakeFiles/gslcblas.dir/cswap.c.o CMakeFiles/gslcblas.dir/csymm.c.o 
CMakeFiles/gslcblas.dir/csyr2k.c.o CMakeFiles/gslcblas.dir/csyrk.c.o 
CMakeFiles/gslcblas.dir/ctbmv.c.o CMakeFiles/gslcblas.dir/ctbsv.c.o 
CMakeFiles/gslcblas.dir/ctpmv.c.o CMakeFiles/gslcblas.dir/ctpsv.c.o 
CMakeFiles/gslcblas.dir/ctrmm.c.o CMakeFiles/gslcblas.dir/ctrmv.c.o 
CMakeFiles/gslcblas.dir/ctrsm.c.o CMakeFiles/gslcblas.dir/ctrsv.c.o 
CMakeFiles/gslcblas.dir/zaxpy.c.o CMakeFiles/gslcblas.dir/zcopy.c.o 
CMakeFiles/gslcblas.dir/zdotc_sub.c.o CMakeFiles/gslcblas.dir/zdotu_sub.c.o 
CMakeFiles/gslcblas.dir/zdscal.c.o CMakeFiles/gslcblas.dir/zgbmv.c.o 
CMakeFiles/gslcblas.dir/zgemm.c.o CMakeFiles/gslcblas.dir/zgemv.c.o 
CMakeFiles/gslcblas.dir/zgerc.c.o CMakeFiles/gslcblas.dir/zgeru.c.o 
CMakeFiles/gslcblas.dir/zhbmv.c.o CMakeFiles/gslcblas.dir/zhemm.c.o 
CMakeFiles/gslcblas.dir/zhemv.c.o CMakeFiles/gslcblas.dir/zher.c.o 
CMakeFiles/gslcblas.dir/zher2.c.o CMakeFiles/gslcblas.dir/zher2k.c.o 
CMakeFiles/gslcblas.dir/zherk.c.o CMakeFiles/gslcblas.dir/zhpmv.c.o 
CMakeFiles/gslcblas.dir/zhpr.c.o CMakeFiles/gslcblas.dir/zhpr2.c.o 
CMakeFiles/gslcblas.dir/zscal.c.o CMakeFiles/gslcblas.dir/zswap.c.o 
CMakeFiles/gslcblas.dir/zsymm.c.o CMakeFiles/gslcblas.dir/zsyr2k.c.o 
CMakeFiles/gslcblas.dir/zsyrk.c.o CMakeFiles/gslcblas.dir/ztbmv.c.o 
CMakeFiles/gslcblas.dir/ztbsv.c.o CMakeFiles/gslcblas.dir/ztpmv.c.o 
CMakeFiles/gslcblas.dir/ztpsv.c.o CMakeFiles/gslcblas.dir/ztrmm.c.o 
CMakeFiles/gslcblas.dir/ztrmv.c.o CMakeFiles/gslcblas.dir/ztrsm.c.o 
CMakeFiles/gslcblas.dir/ztrsv.c.o CMakeFiles/gslcblas.dir/icamax.c.o 
CMakeFiles/gslcblas.dir/idamax.c.o CMakeFiles/gslcblas.dir/isamax.c.o 
CMakeFiles/gslcblas.dir/izamax.c.o CMakeFiles/gslcblas.dir/xerbla.c.o -Wl,-
whole-archive libgslcblas-static.a -Wl,-no-whole-archive 
/usr/bin/ld:CMakeFiles/gslcblas.dir/sasum.c.o: file format not recognized; 
treating as linker script
/usr/bin/ld:CMakeFiles/gslcblas.dir/sasum.c.o:1: syntax error
collect2: ld returned 1 exit status
make[2]: *** [cblas/libgslcblas.so] Error 1


> 
> Powered by www.kitware.com
> 
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
> 
> Please keep messages on-topic and check the CMake FAQ at:
> http://www.cmake.org/Wiki/CMake_FAQ
> 
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake


More information about the CMake mailing list