fix for a CMake linking problem

Post Reply
juval
Posts: 1
Joined: Fri Jul 22, 2016 10:06 pm

fix for a CMake linking problem

Post by juval »

Hi
I don't know if i should post here or on cmake but
I passed 1 hour finding why I have undefined symbols and there seams to be a bug in how cmake manage inter static linking under nux (don't know about visual)
if lib1 depends on lib2 resulting lib1 have undefined symbols (lib2 symbol not defined in lib1)
so if you use lib1 in you exec it fails saying lib2 symbols aren't defined
my fix:
for all XXX with dependencies replace all

Code: Select all

ADD_LIBRARY(XXX XXXSOURCES)
IF (BUILD_SHARED_LIBS)
	TARGET_LINK_LIBRARIES(XXX DEPENDANTLIB)
ENDIF (BUILD_SHARED_LIBS)
with

Code: Select all

IF (BUILD_SHARED_LIBS)
ADD_LIBRARY(XXX SHARED XXXSOURCES) (perhaps shared should be omitted as build shared libs only there to use MD runtime under MSVC...havent test under windows yet)
	TARGET_LINK_LIBRARIES(XXX DEPENDANTLIBS)
ELSE()
if(win32)
ADD_LIBRARY(XXX STATIC XXXSOURCES)  ..perhaps something should be done but haven't test
else()
ADD_LIBRARY(XXXtemp STATIC XXXSOURCES)  
add_custom_target(XXX ALL
   COMMAND ${CMAKE_AR} rcT libXXX.a $<TARGET_FILE:XXXtemp> $<TARGET_FILE:DEPENDANTLIB1> ..etc.. )
endif(win32)
ENDIF (BUILD_SHARED_LIBS)
This seams to duplicate symbols but linker do the sorting
ps: I use cmake v.2.8 perhaps further versions work better
benelot
Posts: 350
Joined: Sat Jul 04, 2015 10:33 am
Location: Bern, Switzerland
Contact:

Re: fix for a CMake linking problem

Post by benelot »

Hello,

Give it a go at cmake forums. Your issue seems to be entirely unrelated to bullet.
Post Reply