Zitat von Christian Ehrlicher <[email protected]>:
Von: Michael Wild
On 18. Sep, 2009, at 8:14, Christian Ehrlicher wrote:
> Hi,
>
> I've an external project which made the decision to create an
> executable which exports symbols. This means if you want to write a
> plugin for this project you have to link your plugin against this
> executable.
> Now I've the problem that FIND_LIBRARY doesn't find this executable.
> Does anybody knows a hack to be able to link against an executable
> which is not built by the project?
>
> I'm really lost here but I can't convince them to fix it... :(
> Managing an own patch to work around this problem isn't a good long-
> term perspective.
>
> Thx,
> Christian
find_program?
You're right - I did not know that TARGET_LINK_LIBRARIES accepts this.
And that is a REALLY broken design (and AFAIK only works on Windows).
I'm currently investigating and think it doesn't work on linux at
all (which would be very good for me). I'm getting duplicate symbols
:)
-->
FIND_PROGRAM(STAGE_LIB STAGE PATHS /opt/3dviewer/bin)
ADD_LIBRARY(dummy SHARED dummy.cpp)
TARGET_LINK_LIBRARIES(dummy ${STAGE_LIB})
Actually, you are compiling a loadable MODULE, not a library (which
happens to be the same on Linux but not on other platforms).
-->
/usr/local/bin/c++ -fPIC -g -shared -Wl,-soname,libdummy.so -o
libdummy.so CMakeFiles/dummy.dir/dummy.cpp.o /opt/3dviewer/bin/STAGE
/opt/3dviewer/bin/STAGE: In function `_fini':
/usr/src/packages/BUILD/glibc-2.9/cc-nptl/csu/crti.S:37: multiple
definition of `_fini'
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/crti.o:/usr/src/packages/BUILD/glibc-2.9/cc-nptl/csu/crti.S:37: first defined
here
/opt/3dviewer/bin/STAGE: In function `_init':
/usr/src/packages/BUILD/glibc-2.9/cc-nptl/csu/crti.S:25: multiple
definition of `_init'
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../lib64/crti.o:/usr/src/packages/BUILD/glibc-2.9/cc-nptl/csu/crti.S:25: first defined
here
Read the section "The obsolete symbols _init and _fini" in the
dlopen(3) manpage.
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld:
libdummy.so: version node not found for symbol vtable for
__cxxabiv1::__class_type_info@@CXXABI_1.3
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld:
failed to set dynamic section sizes: Bad value
collect2: ld returned 1 exit status
-->
Are you using the same compiler with same version for plugin and executable?
HS
_______________________________________________
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