[Rtk-users] compilation issues in case of outside of ITK directory build

Simon Rit simon.rit at creatis.insa-lyon.fr
Mon Nov 26 04:22:00 EST 2018


Hi,
Sorry for the long delay. I couldn't resolve the problem but Matt McCormick
did it for us:
https://discourse.itk.org/t/link-issue-with-dynamic-libraries/1434/2
That fixed the issue for me.
Best regards,
Simon


On Wed, Oct 31, 2018 at 4:55 PM Simon Rit <simon.rit at creatis.insa-lyon.fr>
wrote:

> Hi,
> I can reproduce the problem and I haven't found a solution yet. I'll let
> you know when I have a fix...
> Simon
>
> On Sat, Oct 27, 2018 at 6:06 AM Julia Semyakishkina <
> prekrasnaya1985 at gmail.com> wrote:
>
>> Hi. Yes, i am.
>> Could you just run this simple script in empty directory:
>> #!/bin/sh
>> wget
>> https://sourceforge.net/projects/itk/files/itk/4.13/InsightToolkit-4.13.1.tar.gz
>> tar -xvzf InsightToolkit-4.13.1.tar.gz
>> mkdir InsightToolkit-4.13.1/build && cd InsightToolkit-4.13.1/build
>> cmake -D CMAKE_BUILD_TYPE=Release -D BUILD_SHARED_LIBS:BOOL=ON .. && make
>> -j`grep -c processor /proc/cpuinfo`
>> ITK_DIR=`pwd`
>> cd ../../
>> git clone https://github.com/SimonRit/RTK
>> mkdir RTK/build && cd RTK/build
>> cmake -D CMAKE_BUILD_TYPE=Release -D BUILD_SHARED_LIBS:BOOL=ON -D
>> BUILD_TESTING:BOOL=OFF -D ITK_DIR:PATH=$ITK_DIR .. && make
>>
>> Don't you have the same linker errors i wrote in the previous message ?
>>
>> some info about my system
>> Ubuntu 17.04
>> Linux mnolro6001 4.10.0-42-generic #46-Ubuntu SMP Mon Dec 4 14:38:01 UTC
>> 2017 x86_64 x86_64 x86_64 GNU/Linux
>> gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2)
>> cmake version 3.13.0-rc1
>>
>>
>>
>>
>> On Fri, Oct 26, 2018 at 8:05 PM Simon Rit <simon.rit at creatis.insa-lyon.fr>
>> wrote:
>>
>>> Hi,
>>> Are you sure it's shared with the same compilation mode (Debug or
>>> Release) ?
>>> Simon
>>>
>>> On Fri, Oct 26, 2018 at 5:18 AM Julia Semyakishkina <
>>> prekrasnaya1985 at gmail.com> wrote:
>>>
>>>> Ok, it works in case ITK Static -> RTK Static. When i try to build ITK
>>>> Shared -> RTK Shared, i have got:
>>>> [ 19%] Linking CXX executable ../../bin/rtkamsterdamshroud
>>>> CMakeFiles/rtkamsterdamshroud.dir/rtkamsterdamshroud.cxx.o: In function
>>>> `rtk::ThreeDCircularProjectionGeometryXMLFileReader::New()':
>>>> rtkamsterdamshroud.cxx:(.text._ZN3rtk45ThreeDCircularProjectionGeometryXMLFileReader3NewEv[_ZN3rtk45ThreeDCircularProjectionGeometryXMLFileReader3NewEv]+0xe):
>>>> undefined reference to `typeinfo for
>>>> rtk::ThreeDCircularProjectionGeometryXMLFileReader'
>>>> rtkamsterdamshroud.cxx:(.text._ZN3rtk45ThreeDCircularProjectionGeometryXMLFileReader3NewEv[_ZN3rtk45ThreeDCircularProjectionGeometryXMLFileReader3NewEv]+0x41):
>>>> undefined reference to `typeinfo for
>>>> rtk::ThreeDCircularProjectionGeometryXMLFileReader'
>>>> rtkamsterdamshroud.cxx:(.text._ZN3rtk45ThreeDCircularProjectionGeometryXMLFileReader3NewEv[_ZN3rtk45ThreeDCircularProjectionGeometryXMLFileReader3NewEv]+0xc9):
>>>> undefined reference to
>>>> `rtk::ThreeDCircularProjectionGeometryXMLFileReader::ThreeDCircularProjectionGeometryXMLFileReader()'
>>>> CMakeFiles/rtkamsterdamshroud.dir/rtkamsterdamshroud.cxx.o: In function
>>>> `std::vector<std::__cxx11::basic_string<char, std::char_traits<char>,
>>>> std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char,
>>>> std::char_traits<char>, std::allocator<char> > > > const
>>>> rtk::GetProjectionsFileNamesFromGgo<args_info_rtkamsterdamshroud>(args_info_rtkamsterdamshroud
>>>> const&)':
>>>> rtkamsterdamshroud.cxx:(.text._ZN3rtk30GetProjectionsFileNamesFromGgoI28args_info_rtkamsterdamshroudEEKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EERKT_[_ZN3rtk30GetProjectionsFileNamesFromGgoI28args_info_rtkamsterdamshroudEEKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS8_EERKT_]+0x3c1):
>>>> undefined reference to `rtk::RegisterIOFactories()'
>>>> CMakeFiles/rtkamsterdamshroud.dir/rtkamsterdamshroud.cxx.o: In function
>>>> `rtk::ProjectionsReader<itk::Image<double, 3u>
>>>> >::GenerateOutputInformation()':
>>>> rtkamsterdamshroud.cxx:(.text._ZN3rtk17ProjectionsReaderIN3itk5ImageIdLj3EEEE25GenerateOutputInformationEv[_ZN3rtk17ProjectionsReaderIN3itk5ImageIdLj3EEEE25GenerateOutputInformationEv]+0x8e1):
>>>> undefined reference to `rtk::RegisterIOFactories()'
>>>> collect2: error: ld returned 1 exit status
>>>> applications/rtkamsterdamshroud/CMakeFiles/rtkamsterdamshroud.dir/build.make:141:
>>>> recipe for target 'bin/rtkamsterdamshroud' failed
>>>> make[2]: *** [bin/rtkamsterdamshroud] Error 1
>>>> CMakeFiles/Makefile2:512: recipe for target
>>>> 'applications/rtkamsterdamshroud/CMakeFiles/rtkamsterdamshroud.dir/all'
>>>> failed
>>>> make[1]: ***
>>>> [applications/rtkamsterdamshroud/CMakeFiles/rtkamsterdamshroud.dir/all]
>>>> Error 2
>>>> Makefile:129: recipe for target 'all' failed
>>>> make: *** [all] Error 2
>>>>
>>>> On Fri, Oct 26, 2018 at 2:59 AM Simon Rit <
>>>> simon.rit at creatis.insa-lyon.fr> wrote:
>>>>
>>>>> Hi,
>>>>> It seems that you are trying to compile against an installed ITK_DIR.
>>>>> This is no longer possible, see this thread:
>>>>> https://github.com/SimonRit/RTK/issues/207
>>>>> Can you try to compile against your build directory (set ITK_DIR to
>>>>> the build directory)?
>>>>> Thanks,
>>>>> Simon
>>>>>
>>>>> On Thu, Oct 25, 2018 at 5:16 PM Julia Semyakishkina <
>>>>> prekrasnaya1985 at gmail.com> wrote:
>>>>>
>>>>>> Hello.
>>>>>> I can't build RTK in Linux. I've done all default steps described in
>>>>>> wiki, but on configure i've got:
>>>>>> CMake Error at utilities/lp_solve/CMakeLists.txt:9 (include):
>>>>>>    include could not find load file:
>>>>>>
>>>>>>      ITKModuleMacros
>>>>>>
>>>>>>
>>>>>> Hm.. it tries include module that exists in src ITK dir, not
>>>>>> install...
>>>>>> I mean
>>>>>> "ls /usr/local/lib/cmake/ITK-4.13 | grep ITKModuleMacros" prints
>>>>>> nothing
>>>>>> "ls /home/user/src/ITK/CMake | grep ITKModuleMacros" prints
>>>>>> ITKModuleMacros.cmake
>>>>>>
>>>>>> OK, i have just tried to add
>>>>>> CMAKE_MODULE_PATH=/home/user/src/ITK/CMake and got next error:
>>>>>>
>>>>>> CMake Error at CMakeLists.txt:250 (message):
>>>>>>   Modules can only be built against an ITK build tree; they cannot be
>>>>>> built
>>>>>>   against an ITK install tree.
>>>>>>
>>>>>> Let's look at the code:
>>>>>>
>>>>>> if(NOT ITK_SOURCE_DIR)
>>>>>>   if(NOT EXISTS ${ITK_CMAKE_DIR}/ITKModuleMacros.cmake)
>>>>>>     message(FATAL_ERROR "Modules can only be built against an ITK
>>>>>> build tree; they cannot be built against an ITK install tree.")
>>>>>>   endif()
>>>>>>   list(APPEND CMAKE_MODULE_PATH ${ITK_CMAKE_DIR})
>>>>>>   include(ITKModuleExternal)
>>>>>> else()
>>>>>>   itk_module_impl()
>>>>>> endif()
>>>>>>
>>>>>> Yea, ITK_SOURCE_DIR is not set in my case, but why there is must be
>>>>>> ITKModuleMacros.cmake at my ITK_CMAKE_DIR dir that points to ITK
>>>>>> installation dir ?
>>>>>>
>>>>>> If i set ITK_CMAKE_DIR to /home/user/src/ITK/CMake where
>>>>>> ITKModuleMacros is, it resets back to ITK installation directory at
>>>>>> # --------------------------------------------------------
>>>>>> # Find ITK (required)
>>>>>> if(NOT ITK_SOURCE_DIR)
>>>>>>   find_package(ITK 4.12.0 REQUIRED)
>>>>>> endif()
>>>>>>
>>>>>>
>>>>>> So, the only way i see is to build inside ITK, but i am not familiar
>>>>>> with this. Could anyone help me how to build RTK inside ITK.
>>>>>> _______________________________________________
>>>>>> Rtk-users mailing list
>>>>>> Rtk-users at public.kitware.com
>>>>>> https://public.kitware.com/mailman/listinfo/rtk-users
>>>>>>
>>>>> _______________________________________________
>>>> Rtk-users mailing list
>>>> Rtk-users at public.kitware.com
>>>> https://public.kitware.com/mailman/listinfo/rtk-users
>>>>
>>> _______________________________________________
>> Rtk-users mailing list
>> Rtk-users at public.kitware.com
>> https://public.kitware.com/mailman/listinfo/rtk-users
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://public.kitware.com/pipermail/rtk-users/attachments/20181126/d8b7714d/attachment.html>


More information about the Rtk-users mailing list