董理 wrote: > Hi, all, > > My program (Fortran 90) uses the "trust region nonlinear least squares > problem" (dtrnlsp) subroutines, how can I setup cmake? > > There is a module that calls the dtrnlsp subroutines, and one main > program uses that module. > > I have wrote the following statement in the CMakeLists.txt with module: > " > add_library(<module> <module source file>) > > set_target_properties(<module> > PROPERTIES > LINK_FLAGS "-I${MKL_INCLUDE_DIRS} -Wl,--start-group > ${MKL_LIBRARIES}/libmkl_solver_lp64_sequential.a > ${MKL_LIBRARIES}/libmkl_core.a -Wl,--end-group" > ) > " > where MKL_INCLUDE_DIRS and MKL_LIBRARIES are set to the correct path. > The error output is: > " > ...... > ...... undefined reference to `dtrnlsp_init_' > ...... > " That looks way to platform specific...
include_directories(${MKL_INCLUDE_DIRS}) target_link_libraries(<module> ${MKL_LIBRARIES}/libmkl_solver_lp64_sequential.a ${MKL_LIBRARIES}/libmkl_core.a ) Or, this would be even better: find_library( MSOLVE mkl_solver_lp64_sequential HINTS ${MKL_LIBRARIES}) find_library( MKLCORE mkl_core HINTS ${MKL_LIBRARIES}) target_link_libraries(<module> ${MSOLVE} ${MKLCORE} You should find out where the symbol is defined... nm -PA ${MKL_LIBRARIES}/*.a | grep dtrnlsp_init -Bill _______________________________________________ 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