On 13. Sep, 2010, at 14:57 , David Aldrich wrote:
> Hi Michael
>
>
>> You never link static libraries. They are more like zip files than actual
>> libraries and just contain the compiled object files and for if you ran
>> ranlib on it, also a "table-of-contents" to speed link up.
>>
>> If you do "target_link_libraries" in CMake, where the target is a static
>> library, CMake just creates the static library archive and remembers
>> internally the transitive link dependency. If you linked that static
>> archive into an executable, the python libraries would then show up on the
>> command line.
>
> Now I am confused (more than before!) because linking my Kernel library does
> give errors related to Python:
>
> Linking CXX executable main
> CMakeFiles/main.dir/Kernel.cpp.o: In function
> `__static_initialization_and_destruction_0(int, int)':
> Kernel.cpp:(.text+0x101): undefined reference to `_Py_NoneStruct'
> Kernel.cpp:(.text+0x10d): undefined reference to `_Py_NoneStruct'
>
> The make file is evidently building an executable even though I have only
> specified:
>
> add_library( Kernel STATIC ${SRCS} )
>
> I can see from make VERBOSE=1, that it is trying to link main.exe instead of
> calling 'ar' to build libKernel.a.
>
> Can you give me some more help on this please?
>
> David
Can you show above link command with "make VERBOSE=1"? I assume you do
something like this?
find_package(PythonLibs REQUIRED)
include_directories(${PYTHON_INCLUDE_DIRS})
add_library(Kernel STATIC a.c b.c d.c)
target_link_libraries(Kernel ${PYTHON_LIBRARIES})
add_executable(main main.c)
target_link_libraries(main Kernel)
Michael
--
There is always a well-known solution to every human problem -- neat,
plausible, and wrong.
H. L. Mencken
PGP.sig
Description: This is a digitally signed message part
_______________________________________________ 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
