[Cmake] Adding executables that use dlls

Miller, James V (CRD) millerjv at crd.ge.com
Wed Dec 12 10:31:09 EST 2001


In our UseITK.cmake file we have lines like... 

IF (UNIX)
  LINK_LIBRARIES(${THREAD_LIBS} ${DL_LIBS} -lm)
ENDIF (UNIX)

Don't know if this helps. Attached are our toplevel CMakeLists.txt file as well as
itkCMakeOptions.cmake and UseITK.cmake in case these help.


-----Original Message-----
From: Asad A. Abu-Tarif [mailto:tarifa at rpi.edu]
Sent: Wednesday, December 12, 2001 9:57 AM
To: CMake mailing list
Subject: Re: [Cmake] Adding executables that use dlls


Thanks a million.
What flags do you use for the function 'max' ? (The CMAKE_THREAD_LIBS and
CMAKE_DL_LIBS solve all the thread and lperror ...etc but the reference to
the
max function which is part of the math library).
Do use have a flag for that in CMake?

Thanks again,
Asad

----- Original Message -----
From: "Miller, James V (CRD)" <millerjv at crd.ge.com>
To: "'Asad A. Abu-Tarif'" <tarifa at rpi.edu>; "CMake mailing list"
<cmake at public.kitware.com>
Sent: Wednesday, December 12, 2001 9:27 AM
Subject: RE: [Cmake] Adding executables that use dlls


> We usually have a section of our CMakeLists.txt file for Unix builds that
sets the threads and dl
> libraries.
>
> # set link libraries for project
> IF(UNIX)
>   LINK_LIBRARIES(${CMAKE_THREAD_LIBS} ${CMAKE_DL_LIBS})
> ENDIF(UNIX)
>
> -----Original Message-----
> From: Asad A. Abu-Tarif [mailto:tarifa at rpi.edu]
> Sent: Wednesday, December 12, 2001 9:04 AM
> To: CMake mailing list
> Subject: Re: [Cmake] Adding executables that use dlls
>
>
> Thanks.
> I tried that it works fine with VC++ and windows NT
> and the exe files are generated. However, on linux
> I get the following errors as soon as it tries to link
> the object files to create the very first executable it finds:
> ===============errors===================================
> /usr/vtk3.2/Debug/lib/libVTKCommon.so: undefined reference to `dlerror'
> /usr/vtk3.2/Debug/lib/libVTKCommon.so: undefined reference to
> `pthread_create'
> /usr/vtk3.2/Debug/lib/libVTKCommon.so: undefined reference to `dlclose'
> /usr/vtk3.2/Debug/lib/libVTKCommon.so: undefined reference to `dlopen'
> /usr/asad/RegMagicTKBin/Numerics/libRegMagicTKNumerics.so: undefined
> reference to `max'
> /usr/vtk3.2/Debug/lib/libVTKCommon.so: undefined reference to `dlsym'
> /usr/vtk3.2/Debug/lib/libVTKCommon.so: undefined reference to
`pthread_join'
> ===============end of errors===================================
>
> Any help would be greatly appreciated. The CMakeLists.txt file I used
> is below.
>
> Regards,
> Asad
>
> =============CMakeLists.txt=====================================
> PROJECT (NumericsTesting)
> LINK_LIBRARIES(RegMagicTKNumerics VTKCommon )
> ADD_EXECUTABLE(ExecTestingPowellCompilation
ExecTestingPowellCompilation.cpp
> TestingPowellCompilation.cpp )
> ADD_EXECUTABLE(ExecTestingBracketCompilation
> ExecTestingBracketCompilation.cpp TestingregBracketCompilation.cpp )
> ADD_EXECUTABLE(ExecMatrixGeneration ExecMatrixGeneration.cpp )
> =============CMakeLists.txt=====================================
>
>
>       __________________________________________________
>      /                        Asad A. Abu-Tarif
> \
>      |   Computer Engineering.
> |
>      |   PhD Candidate, Rensselaer Polytechnic Institute (RPI).       |
>      |   tarifa at rpi.ed
> |
>      \___________________________________________________/
>
> ----- Original Message -----
> From: "William A. Hoffman" <bill.hoffman at kitware.com>
> To: "Asad A. Abu-Tarif" <tarifa at rpi.edu>; "CMake mailing list"
> <cmake at public.kitware.com>
> Sent: Wednesday, December 12, 2001 8:26 AM
> Subject: Re: [Cmake] Adding executables that use dlls
>
>
> > Use either the LINK_LIBRARIES command or the TARGET_LINK_LIBRARIES
> command.
> > For an example with VTK, see Examples/Tutorial/Step1/Cxx/CMakeLists.txt.
> >
> > -Bill
> >
> > At 08:00 AM 12/12/2001 -0500, Asad A. Abu-Tarif wrote:
> > >Hi,
> > >I'm trying to use CMake to build a package that I wrote.
> > >I can generate the libraries fine. However, as soon as I
> > >start adding executables, I start getting errors like: undefined
> > >symbol.
> > >
> > >For example, here is one executable I'm trying to add:
> > >
> > >ADD_EXECUTABLE(ExecTestingPowellCompilation
> ExecTestingPowellCompilation.cpp
> > >TestingPowellCompilation.cpp )
> > >
> > >However, I should also link VTKCommon with those files because
> > >they use it. How do I do that?
> > >
> > >Thanks a lot,
> > >Asad
> > >
> > >_______________________________________________
> > >Cmake mailing list
> > >Cmake at public.kitware.com
> > >http://public.kitware.com/mailman/listinfo/cmake
> >
>
> _______________________________________________
> Cmake mailing list
> Cmake at public.kitware.com
> http://public.kitware.com/mailman/listinfo/cmake
>

_______________________________________________
Cmake mailing list
Cmake at public.kitware.com
http://public.kitware.com/mailman/listinfo/cmake


begin 600 CMakeLists.txt
M(R!4:&ES(&ES('1H92!R;V]T($E42R!#36%K94QI<W1S(&9I;&4N#0H-"E!2
M3TI%0U0H251+*0T*24Y#3%5$15]214=53$%27T584%)%4U-)3TXH(EXH:71K
M?'9T:WQV;FQ\=F-L?&8R8WQC92DN*B0B*0T*#0I)1BA.3U0 at 5TE.,S(I#0H@
M($]05$E/3BA"54E,1%]32$%2141?3$E"4R`B0G5I;&0@=VET:"!S:&%R960@
M;&EB<F%R:65S+B(@3T9&*0T*14Y$248H3D]4(%=)3C,R*0T*#0I33U520T5?
M1U)/55`H(EA-3"!&:6QE<R(@(ELN77AM;"0B*0T*#0HC($EN8VQU9&4@=&AE
M(&EN8VQU9&4 at 86YD(&QI;FL@;&EB<F%R:65S#0I)3D-,541%("@D>TE42U]3
M3U520T5?1$E2?2]I=&M#36%K94]P=&EO;G,N8VUA:V4I#0H-"B, at 5V%L:R!I
M;G1O('1H97-E(&1I<F5C=&]R:65S(&)E9F]R92!497-T:6YG(&]R(%5N<W5P
M<&]R=&5D+ at T*4U5"1$E24RA5=&EL:71I97, at 0V]D92D-"E-50D1)4E]$15!%
M3D13*$-O9&4 at 571I;&ET:65S*0T*#0HC($EN8VQU9&4@=&AE('-T86YD87)D
M($1A<G0@=&5S=&EN9R!M;V1U;&4-"DE.0TQ51$4@*"1[0TU!2T5?4D]/5'TO
M36]D=6QE<R]$87)T+F-M86ME*0T*248@*$)524Q$7U1%4U1)3D<I#0H@(%-5
M0D1)4E,H5&5S=&EN9RD-"B`@4U5"1$E27T1%4$5.1%,H5&5S=&EN9R!#;V1E
M*0T*("!#3TY&24=54D5?1DE,12 at D>TE42U]33U520T5?1$E2?2]);G-I9VAT
M3&]G;RYG:68@)'M)5$M?0DE.05)97T1)4GTO5&5S=&EN9R](5$U,+U1E<W1I
M;F=297-U;'1S+TEC;VYS+TQO9V\N9VEF($-/4%E/3DQ9*0T*14Y$248@*$)5
M24Q$7U1%4U1)3D<I#0H-"D-/3D9)1U5215]&24Q%*"1[251+7U-/55)#15]$
M25)]+U5S94E42RYC;6%K90T*("`@("`@("`@("`@("`@)'M)5$M?0DE.05)9
M7T1)4GTO57-E251++F-M86ME($-/4%E/3DQ9*0T*#0HC($%D9"!A;B!O<'1I
M;VX@=&\@8G5I;&0@;W(@;F]T(&)U:6QD('1H92!%>&%M<&QE<PT*3U!424].
M*$)524Q$7T5804U03$53(")"=6EL9"!T:&4 at 97AA;7!L97, at 9&ER96-T;W)Y
M(BD-"DE&*$)524Q$7T5804U03$53*0T*("!354)$25)3*$5X86UP;&5S*0T*
M("!354)$25)?1$5014Y$4RA%>&%M<&QE<R!#;V1E*0T*14Y$248H0E5)3$1?
M15A!35!,15,I#0H-"@T*(R!!9&0 at 86X@;W!T:6]N('1O(&)U:6QD(&]R(&YO
M="!B=6EL9"!T:&4 at 56YS=7!P;W)T960@<W1U9F8-"D]05$E/3BA"54E,1%]5
M3E-54%!/4E1%1"`B0G5I;&0@=&AE('5N<W5P<&]R=&5D(&1I<F5C=&]R>2(I
M#0I)1BA"54E,1%]53E-54%!/4E1%1"D-"B`@4U5"1$E24RA5;G-U<'!O<G1E
M9"D-"B`@4U5"1$E27T1%4$5.1%,H56YS=7!P;W)T960 at 0V]D92D-"D5.1$E&
M*$)524Q$7U5.4U504$]25$5$*0T*#0HC($-O;F9I9W5R92!F:6QE<PT*0T].
M1DE'55)%7T9)3$4H#0HD>TE42U]33U520T5?1$E2?2]I=&M#;VYF:6=U<F4N
M:"YI;B`-"B1[251+7T))3D%265]$25)]+VET:T-O;F9I9W5R92YH*0T*#0I#
M3TY&24=54D5?1DE,12 at -"B1[251+7U-/55)#15]$25)]+V1O>'EG96XN8V]N
M9FEG+FEN#0HD>TE42U]"24Y!4EE?1$E2?2]D;WAY9V5N+F-O;F9I9RD-"@T*
M(R!M86ME(&1I<F5C=&]R:65S(&EN('1H92!B:6YA<GD@=')E90T*34%+15]$
M25)%0U1/4EDH)'M)5$M?0DE.05)97T1)4GTO0V]D92].=6UE<FEC<R]V>&PO
M=F-L*0T*34%+15]$25)%0U1/4EDH)'M)5$M?0DE.05)97T1)4GTO1&]C=6UE
M;G1A=&EO;B]$;WAY9V5N*0T*#0HC(')U;B!66$P at 8V]N9FEG=7)E('-C<FEP
M=',-"DE&*%)53E]#3TY&24=54D4I#0H@($5814-?4%)/1U)!32 at D>TE42U]3
M3U520T5?1$E2?2]#;V1E+TYU;65R:6-S+W9X;"]C;VYF:6=U<F4@#0H@("`@
M("`@("`@("`@("`D>TE42U]"24Y!4EE?1$E2?2]#;V1E+TYU;65R:6-S+W9X
M;"D-"B`@15A%0U]04D]'4D%-*"1[251+7U-/55)#15]$25)]+T-O9&4O3G5M
M97)I8W,O=GAL+W9C;"]C;VYF:6=U<F4@#0H@("`@("`@("`@("`@("`D>TE4
M2U]"24Y!4EE?1$E2?2]#;V1E+TYU;65R:6-S+W9X;"]V8VPI#0I%3D1)1BA2
M54Y?0T].1DE'55)%*0T*#0HC(&9O<B!W:6XS,B!V8S8P+"!J=7-T(&-O<'D@
M9FEL97,-"DE&*$Y/5"!53DE8*0T*("!)1BA724XS,BD-"B`@("!#3TY&24=5
M4D5?1DE,12 at -"B`@("`@("`@)'M)5$M?4T]54D-%7T1)4GTO0V]D92].=6UE
M<FEC<R]V>&PO=F-L+V-O;F9I9RYW:6XS,BUV8S8P+W9X;%]C;VYF:6<N:`T*
M("`@("`@("`D>TE42U]"24Y!4EE?1$E2?2]#;V1E+TYU;65R:6-S+W9X;"]V
M>&Q?8V]N9FEG+F@@0T]064].3%DI#0H@("`@0T].1DE'55)%7T9)3$4H#0H@
M("`@("`@("1[251+7U-/55)#15]$25)]+T-O9&4O3G5M97)I8W,O=GAL+W9C
M;"]C;VYF:6<N=VEN,S(M=F,V,"]V8VQ?8V]N9FEG7V-O;7!I;&5R+F at -"B`@
M("`@("`@)'M)5$M?0DE.05)97T1)4GTO0V]D92].=6UE<FEC<R]V>&PO=F-L
M+W9C;%]C;VYF:6=?8V]M<&EL97(N:"!#3U!93TY,62D-"B`@("!#3TY&24=5
M4D5?1DE,12 at -"B`@("`@("`@)'M)5$M?4T]54D-%7T1)4GTO0V]D92].=6UE
M<FEC<R]V>&PO=F-L+V-O;F9I9RYW:6XS,BUV8S8P+W9C;%]C;VYF:6=?:&5A
M9&5R<RYH#0H@("`@("`@("1[251+7T))3D%265]$25)]+T-O9&4O3G5M97)I
M8W,O=GAL+W9C;"]V8VQ?8V]N9FEG7VAE861E<G,N:"!#3U!93TY,62D-"B`@
M("!#3TY&24=54D5?1DE,12 at -"B`@("`@("`@)'M)5$M?4T]54D-%7T1)4GTO
M0V]D92].=6UE<FEC<R]V>&PO=F-L+V-O;F9I9RYW:6XS,BUV8S8P+W9C;%]C
M;VYF:6=?;6%N=6%L+F at -"B`@("`@("`@)'M)5$M?0DE.05)97T1)4GTO0V]D
M92].=6UE<FEC<R]V>&PO=F-L+W9C;%]C;VYF:6=?;6%N=6%L+F@@0T]064].
M3%DI#0H@($5.1$E&*%=)3C,R*0T*14Y$248H3D]4(%5.25 at I#0H-"D]05$E/
M3BA)5$M?5U)!4%]40TP@(D)U:6QD(%1C;"!W<F%P<&5R('-U<'!O<G0N(B!/
M1D8I#0H-"DE&*$E42U]74D%07U1#3"D-"B`@4U5"1$E24RA7<F%P<&EN9RD-
M"B`@4U5"1$E27T1%4$5.1%,H5W)A<'!I;F<@0V]D92D-"D5.1$E&*$E42U]7
*4D%07U1#3"D-"@==
`
end

begin 600 itkCMakeOptions.cmake
M(PT*(R!4:&ES(&9I;&4 at 8V%N(&)E(&EN8VQU9&5D(&)Y(&]T:&5R('!R;VIE
M8W1S('1H870@=7-E(&]R(&1E<&5N9"!O;B!);G-I9VAT+ at T*(R!)="!S971S
M('5P(&UA;GD at 9&5F875L="!P87)A;65T97)S(&%N9"!I;F-L=61E('!A=&AS
M+ at T*(PT*#0HC('-E="!P<F]J96-T(&EN8VQU9&4 at 9&ER96-T;W)I97,-"DE.
M0TQ51$5?1$E214-43U))15,H#0HD>TE42U]"24Y!4EE?1$E2?2`-"B1[251+
M7U-/55)#15]$25)]+T-O9&4O3G5M97)I8W,-"B1[251+7U-/55)#15]$25)]
M+T-O9&4O0V]M;6]N(`T*)'M)5$M?0DE.05)97T1)4GTO0V]D92].=6UE<FEC
M<R]V>&P@#0HD>TE42U]33U520T5?1$E2?2]#;V1E+TYU;65R:6-S+W9X;"`-
M"B1[251+7T))3D%265]$25)]+T-O9&4O3G5M97)I8W,O=GAL+W9C;"`-"B1[
M251+7U-/55)#15]$25)]+T-O9&4O3G5M97)I8W,O=GAL+W9C;"`-"B1[251+
M7U-/55)#15]$25)]+U5T:6QI=&EE<R]P;F<-"B1[251+7U-/55)#15]$25)]
M+U5T:6QI=&EE<R]Z;&EB#0HI#0H-"B,@<V5T(&QI;FL@;&EB<F%R:65S#0I,
M24Y+7T1)4D5#5$]22453*`T*)'M)5$M?0DE.05)97T1)4GTO0V]D92]#;VUM
M;VX@#0HD>TE42U]"24Y!4EE?1$E2?2]#;V1E+TYU;65R:6-S+W9X;"`I#0H-
M"B,@=7-E('1H92!D:7-T<FEB=71E9"!V97)S:6]N(&]F(%-'22=S(&5X<&5R
M:6UE;G1A;"!#*RL at 4W1A;F1A<F0 at 3&EB<F%R>0T*248@*$Y/5"!)5$M?55-%
M7U-94U1%35]35$1,24(I#0I)3D-,541%7T1)4D5#5$]22453*"1[251+7U-/
M55)#15]$25)]+U5T:6QI=&EE<R]S=&1L:6(I#0I,24Y+7T1)4D5#5$]22453
M*"1[251+7T))3D%265]$25)]+U5T:6QI=&EE<R]S=&1L:6(I#0I%3D1)1B`H
M3D]4($E42U]54T5?4UE35$5-7U-41$Q)0BD-"@T*(R!S970@;&EN:R!L:6)R
M87)I97, at 9F]R('!R;VIE8W0-"DE&*%5.25 at I#0H@($Q)3DM?3$E"4D%22453
M*"1[0TU!2T5?5$A214%$7TQ)0E-]("1[0TU!2T5?1$Q?3$E"4WTI#0I%3D1)
M1BA53DE8*0T*#0I)1BA#34%+15]#3TU024Q%4E])4U]'3E5#6%@I#0H@("`@
M("`@(%-%5"A#34%+15]#6%A?1DQ!1U,@(B1[0TU!2T5?0UA87T9,04=3?2`M
M9G1E;7!L871E+61E<'1H+34P(BD-"D5.1$E&*$--04M%7T-/35!)3$527TE3
M7T=.54-86"D-"@T*(R!F;W)C92!T:&4@=7-E(&]F(&%N<VD at 8WAX(&9L86=S
M("AI+F4N("U,04Y'.G-T9"!O;B!S9VD@*0T*248@*$--04M%7T%.4TE?0UA8
M1DQ!1U,I#0H@(%-%5"A#34%+15]#6%A?1DQ!1U,@(B1[0TU!2T5?0UA87T9,
M04=3?2`D>T--04M%7T%.4TE?0UA81DQ!1U-](BD@(`T*14Y$248@*$--04M%
M7T%.4TE?0UA81DQ!1U,I#0I)1B`H0TU!2T5?04Y325]#1DQ!1U,I#0H@(%-%
M5"A#34%+15]#7T9,04=3("(D>T--04M%7T-?1DQ!1U-]("1[0TU!2T5?04Y3
M25]#1DQ!1U-](BD@(`T*14Y$248@*$--04M%7T%.4TE?0T9,04=3*0T*#0I)
M1BA#34%+15]414U03$%415]&3$%'4RD-"B`@4T54*$--04M%7T-86%]&3$%'
M4R`B)'M#34%+15]#6%A?1DQ!1U-]("1[0TU!2T5?5$5-4$Q!5$5?1DQ!1U-]
M(BD@(`T*14Y$248H0TU!2T5?5$5-4$Q!5$5?1DQ!1U,I#0H-"DE&*$--04M%
M7U5315]05$A214%$4RD-"B`@("!!1$1?1$5&24Y)5$E/3E,H+41?4%1(4D5!
@1%,I#0I%3D1)1BA#34%+15]54T5?4%1(4D5!1%,I#0H=
`
end

begin 600 UseITK.cmake
M(PT*(R!4:&ES(&UO9'5L92!A9&0@=&AE(%942R!I;F-L=61E('!A=&AS('1O
M(&$@<')O:F5C=`T*(R!)="!S:&]U;&0 at 8F4@:6YC;'5D960 at 869T97(@=&AE
M($9I;F165$L@;6]D=6QE#0HC#0I)1B`H251+7T))3D%265]0051(*0T*("!,
M3T%$7T-!0TA%*"1[251+7T))3D%265]0051(?2`-"B`@15A#3%5$10T*("`@
M($)524Q$7U-(05)%1%],24)3#0H@("`@0E5)3$1?5$535$E.1PT*("`@($)5
M24Q$7T5804U03$53#0H@("`@3$E"4D%265]/5510551?4$%42`T*("`@($58
M14-55$%"3$5?3U544%547U!!5$@-"B`@("!-04M%0T]-34%.1"`-"B`@("!3
M251%#0H@("`@0E5)3$1.04U%#0H@("`@24Y#3%5$15])3E1%4DY!3%,-"B`@
M("!)5$M?0DE.05)97T1)4 at T*("`@($E42U],24)205)97U!!5$@-"B`@("!)
M5$M?0E5)3$1?4TA!4D5$7TQ)0E,-"B`@("`I#0H@("`@24Y#3%5$12`H)'M)
M5$M?4T]54D-%7T1)4GTO:71K0TUA:V5/<'1I;VYS+F-M86ME*0T*("`@($E.
M0TQ51$5?1$E214-43U))15,H)'M)5$M?4T]54D-%7T1)4GTO0V]D92]"87-I
M8T9I;'1E<G,I#0H@("`@24Y#3%5$15]$25)%0U1/4DE%4R at D>TE42U]33U52
M0T5?1$E2?2]#;V1E+T%L9V]R:71H;7,I#0H@("`@3$E.2U]$25)%0U1/4DE%
M4R at D>TE42U],24)205)97U!!5$A]*0T*14Y$248@*%942U]"24Y!4EE?4$%4
M2"D-"@T*248@*%5.25 at I#0H@($Q)3DM?3$E"4D%22453*"1[5$A214%$7TQ)
C0E-]("1[1$Q?3$E"4WT at +6QM*0T*14Y$248@*%5.25 at I#0H=
`
end



More information about the CMake mailing list