[CMake] problem creating a library on mac
Marie-Christine Vallet
mmvallet at ucdavis.edu
Thu Sep 27 18:52:23 EDT 2007
Mike Jackson wrote:
> Marie,
> Use the following in your CMakeLists.txt file, generally near the
> top just after you define the PROJECT (... )
>
> SET (LIBRARY_OUTPUT_PATH "${PROJECT_BINARY_DIR}/Bin" CACHE INTERNAL
> "For libraries.")
> SET (EXECUTABLE_OUTPUT_PATH "${PROJECT_BINARY_DIR}/Bin" CACHE INTERNAL
> "For executables.")
>
done
> This will put all the compiled libraries and executables into the same
> bin directory.
>
> Also, I think you may be missing a key philosophy of CMake which is
> "Out of Source" builds. In your project folder create a new folder
> called "Build". Then from the a terminal run the following commands:
> cd Build
> cmake ../
> make
>
thanks, I did not know that
>
> Also, on to the actual problem, can you post the actual linker
> command? Run "make VERBOSE=1" and post the output.
>
I did the modifications you suggested, but it still does not work. For
the include directory, I had to keep
these lines :
*--------------------------
> SET(SKINMESH_INCLUDE_DIR
> ${CMAKE_SOURCE_DIR}/skinmesh
> )
> SET(INCLUDE_DIR
> ${INCLUDE_DIR}
> ${SKINMESH_INCLUDE_DIR}
>
> )
> SET(INCLUDE_DIR
> ${INCLUDE_DIR}
> ${SKINMESH_INCLUDE_DIR}
>
> )
*--------------------------
even though I did made the modification suggested in cmake file the
source directory otherwise, it was not working
Here is my linker command:
Linking CXX executable ../bin/mdi
cd /Users/program/qtskinmesh/build/mdi && /usr/local/bin/cmake -P
CMakeFiles/mdi.dir/cmake_clean_target.cmake
cd /Users/program/qtskinmesh/build/mdi &&
/opt/intel/cc/10.0.016/bin/icpc -O3 -mp1 -Kc++ -Dintel
-headerpad_max_install_names -bind_at_load "CMakeFiles/mdi.dir/main.o"
"CMakeFiles/mdi.dir/csbdmainwindow.o" "CMakeFiles/mdi.dir/csbdmdichild.o"
"CMakeFiles/mdi.dir/moc_csbdmainwindow.o"
"CMakeFiles/mdi.dir/moc_csbdmdichild.o"
"CMakeFiles/mdi.dir/qrc_qt4skinmesh.o" -o ../bin/mdi
-L/Users/program/qtskinmesh/build/skinmesh
-L/Users/program/qtskinmesh/build/bin -L/usr/local/lib
-L/usr/X11R6/lib -L/opt/intel/fc/10.0.016/lib -F/Library/Frameworks
-framework QtGui -framework Carbon -framework QuickTime -framework QtXml
-framework QtCore -lz -framework ApplicationServices -framework QtOpenGL
-lQGLViewer -lgmp -lm -lGL -lGLU -lirc -limf -lifcore -lskinmesh -lgmp -lm
-lGL -lGLU -lirc -limf -lifcore
ld: warning multiple definitions of symbol _modf
/opt/intel/cc/10.0.016/lib/libimf.a(modf_stub.o) definition of _modf in
section (__TEXT,__text)
/usr/lib/gcc/i686-apple-darwin8/4.0.1/../../..//libm.dylib(xmm_floor.o)
definition of _modf
ld: Undefined symbols:
_tetra_zone_copy_
_xyz_vertex_copy_
and my Undefined symbols are all part of my newly created library
skinmesh. What suprrisses me the most is that all that works on fedora
core 6....
Thanks again,
Marie
More information about the CMake
mailing list