[openrtm-beginners:00478] Re: (無題)

Yuki Suga ysuga @ ysuga.net
2013年 8月 22日 (木) 18:21:47 JST


杉浦様:
菅です.

libファイルがあるのであれば,cmakeを使った方がシンプルでポータブルなパッケージになるので,
どちらかというとcmakeを使う方をお勧めしますが・・・

たとえば,あるライブラリが
%PATH_OF_LIB%\lib\mylib.libと
%PATH_OF_LIB%\lib\yourlib.lib
なら,トップレベルのCMakeで

set(MYLIB_LIBDIR "$ENV{PATH_OF_LIB}/lib")

として,MYLIB_LIBDIRを定義して,

さらにライブラリごとの名前を定義
set(MYLIB_LIBRARIES mylib yourlib)

これでMYLIB_LIBRARIESが "mylib yourlib"になります.

んで,srcの中のCMakeLists.txtで,

link_directories(${MYLIB_LIBDIR})
としてライブラリのディレクトリを追加して,

target_link_libraries(${PROJECT_NAME_LOWER} ${OPENRTM_LIBRARIES})

とある行の最後にさっきのライブラリ名を追加します.

target_link_libraries(${PROJECT_NAME_LOWER} ${OPENRTM_LIBRARIES}
${MYLIB_LIBRARIES})

慣れるとこっちの方が良いですよ.



2013年8月22日 17:31  <n.sugiura.tr @ gmail.com>:
> 菅様 さっそくのご返事ありがとうございます。
> いろいろ調べてみましたが、CMake自体は相対パスで出力してくれるようです。
> CMakeのGUIで、Advancedにチェックを入れて、CMAKE_USE_RELATIVE_PATHSにチェックを入れると
> 大部分(*.cppや*.h)は相対パスでプロジェクトを生成してくれました。
> ただ、あと一歩のところでうまく行かなかったです。
> CMakeの仕様なのか設定の問題なのか、よくわかりませんが残念です。
> 一方で、CMakeを使わず、自分でlibファイルをリンクする方法があることをみつけましたので、
> それでトライしてみます。
>
> _______________________________________________
> openrtm-beginners mailing list
> openrtm-beginners @ openrtm.org
> http://www.openrtm.org/mailman/listinfo/openrtm-beginners



-- 
///////////////////////////////////////////////////////////////////
// Yuki Suga, Ph.D.
// URL: http://www.ysuga.net/?lang=en
// E-mail: ysuga @ ysuga.net
///////////////////////////////////////////////////////////////////


More information about the openrtm-beginners mailing list