[ITK] compiling itk on freebsd, how to flag out ldl?

Longzhu Shen lqshen10 at gmail.com
Tue Feb 14 15:53:19 EST 2017


Hi Brad,

Many thanks for the advice.
I made an attempt to follow the first approach but it did not seem
work. Here is what I did and the errors I got. 

-----------------------------------------------------
$ cmake ../SuperBuild -DITK_DYNAMIC_LOADING:BOOL=0


[ 80%] Building CXX object
Wrapping/Python/CMakeFiles/SimpleITK_PYTHON.dir/sitkPyCommand.cxx.o
[ 80%] Building CXX object
Wrapping/Python/CMakeFiles/SimpleITK_PYTHON.dir/SimpleITKPYTHON_wrap.cxx.o
[ 80%] Linking CXX executable bin/SimpleITKTclsh
/usr/bin/ld: cannot find -ldl
c++: error: linker command failed with exit code 1 (use -v to see
invocation)
--- Wrapping/Tcl/bin/SimpleITKTclsh ---
*** [Wrapping/Tcl/bin/SimpleITKTclsh] Error code 1
-----------------------------------------------------

I planned to try the 2nd approach. However, I could not find the
CMAKE_DL_LIBS easily. I checked the subfolder of Superbuild, 
and SimpleITK-build/ITK-build. I did not find it in
 Code/Common/src/CMakeLists.txt as well.

The only place I found "CMAKE_DL_LIBS" is in the file
CMake/sitkTargetLinkLibrariesWithDynamicLookup.cmake

279:        target_link_libraries(main \"${CMAKE_DL_LIBS}\")

I was wondering I may get further directions to modify CMAKE_DL_LIBS
variable. Many thanks.

sincerely,

Longzhu 


Lowekamp @ 2017-02-14 15:36 UTC:

> Hello Longzu,
>
> You are using freebsd, that is new and exciting. I have not used that OS for developing.
>
> There are two things in the ITK/SimpleITK build that are related to this.
>
> First, there is an option in ITK ( which I have not used ) call ITK_DYNAMIC_LOADING. If you pass -DITK_DYNAMIC_LOADING:BOOL=0 to cmake for the Superbuild, it should propagate to the ITK project and this feature will be remove. This may solve your problem.
>
> The second is CMake variable CMAKE_DL_LIBS. I believe it is the dl library that is causing the problem [1]. Setting it to an empty string may also remove it from the linking lines. Getting that to propagate to the ITK project will not happen automatically and would need to be done manually in the ITK build.
>
> HTH,
> Brad
>
> [1] https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Core/Common/src/CMakeLists.txt#L142
>
> ________________________________________
> From: Longzhu Shen [lqshen10 at gmail.com]
> Sent: Tuesday, February 14, 2017 9:11 AM
> To: community at itk.org
> Subject: [ITK] compiling itk on freebsd, how to flag out ldl?
>
> Hello,
>
> I'm trying to compile simpleitk on my freebsd system.
> The issue I encountered is ldl is not found.
> After some searching, I found libdl is not needed on freebsd. It is
> included in libc. Wondering how I can turn it off in the make file.
> I did not find  ldl in the Makefile under Simpleitk-build.
>
> I followed the instrutions from the link below.
>
> https://chsasank.github.io/sitk-docs/building/unix.html#obtaining-source-code
>
> Thanks.
>
> Longzhu


-- 
Longzhu Shen, Ph.D.
Postdoc Research Associate
School of Forestry and Environmental Studies
Yale University
195 Prospect Street
New Haven, CT 06511


More information about the Community mailing list