eclipse cross gcc でライブラリィのリンクが出来ない

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
rakudanoojichan
記事: 3
登録日時: 8年前

eclipse cross gcc でライブラリィのリンクが出来ない

#1

投稿記事 by rakudanoojichan » 8年前

STM32F746G-DISCOで開発をするため、STのデモプログラムをeclipseに移植しています。
なんとかコンパイルは通ったのですが、リンクで躓いています。
Invoking: Cross ARM C++ Linker
arm-none-eabi-g++ -mcpu=cortex-m7 -mthumb -mfloat-abi=softfp -mfpu=fpv5-sp-d16 -O2 -g -T "D:\eclipse\test\demo00\f7_demo\STM32F746NGHx_FLASH.ld" -Xlinker --gc-sections -L"D:\eclipse\test\demo00\f7_demo\STemWin_Addons" -L"D:\eclipse\test\demo00\f7_demo\Middlewares\ST\STemWin\Lib" -Wl,-Map,"f7_demo.map" -o "f7_demo.elf"
中略
.o ./Core/Src/stm32f7xx_it.o ./Core/Src/system_stm32f7xx.o ./Config/LCDConf.o ./startup_stm32f746xx.o ./syscalls.o -l"STM32746G_Discovery_STemWin_Addons_GCC.a" -l"STemWin528_CM7_OS_GCC_ot.a"
c:/dev/arm/toolchain/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/bin/ld.exe: cannot find -lSTM32746G_Discovery_STemWin_Addons_GCC.a
c:/dev/arm/toolchain/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/bin/ld.exe: cannot find -lSTemWin528_CM7_OS_GCC_ot.a
collect2.exe: error: ld returned 1 exit status

ライブラリィのパスは間違いありません、属性の‘a’無も試しました。
何故、ライブラリィが見つからないのでしょうか?
アドバイス宜しくお願い致します。

と成りのトトロ

Re: eclipse cross gcc でライブラリィのリンクが出来ない

#2

投稿記事 by と成りのトトロ » 8年前

組込みシステム用の[モダンC言語プログラミング]でeclipseでオブジェクト指向のC言語を始めようと思ったけど難しかったので中断しています。(STM32F746G-DISCOのForumがあったような気がします)http://qiita.com/Ted-HM/items/9392a8d7e61ada7e42b4http://ganchi.doorblog.jp/archives/8701259.html(VisualStudioもARM対応になってきたし)を見てもよく分かりませんでした。専用のForumの方がいいと思います。

rakudanoojichan
記事: 3
登録日時: 8年前

Re: eclipse cross gcc でライブラリィのリンクが出来ない

#3

投稿記事 by rakudanoojichan » 8年前

と成りのトトロさん、ありがとうございます。
最初のリンクは既に実践して上手く動きました。これに気をよくしてチャレンジしたのですが...ただし、こちらは外部ライブラリィを使っていませんでした。後のリンクはこれから実践してみようと思います。
ちなみに今仕事でカーナビのソフトをやっていますが、VisualStudio2008でターゲットCPUはARMです。多分、今巷で販売されているカーナビの大半がこの仕様かと思います。

と成りのトトロ

Re: eclipse cross gcc でライブラリィのリンクが出来ない

#4

投稿記事 by と成りのトトロ » 8年前

貴重な業界情報をありがとうございました。
>今仕事でカーナビのソフトをやっていますが、VisualStudio2008でターゲットCPUはARMです。多分、今巷で販売されているカーナビの大半がこの仕様かと..
初耳です。業界外の人は想像さえしないでしょうね。私は実はVS2008をよく使います。(g++は少し使ったことがあります。GoFとかTDDの勉強をしています。)

rakudanoojichan
記事: 3
登録日時: 8年前

Re: eclipse cross gcc でライブラリィのリンクが出来ない

#5

投稿記事 by rakudanoojichan » 8年前

リンクできるようになりました。
STemWin528_CM7_OS_GCC_ot.aの場合には、先頭にlibを付けてlibSTemWin528_CM7_OS_GCC_ot.aにリネームします。
実際の設定値は"STemWin528_CM7_OS_GCC_ot"にします。
これでリンクが通ります。
あとはひたすらソースの取捨選択を繰り返し、全てのエラーが無くなりました。
しかし、最終出力はelfファイルでSTM32 ST-Link Utilityは受け付けてくれません。
post build stepに以下を記述してhexファイルを出力するのに成功しました。
arm-none-eabi-objcopy -O ihex ${ProjName}.elf ${ProjName}.hex
現在、デモプログラムのaudio playerで曲を聴きながら書き込んでいます。
ここまで来るのに1カ月以上かかってしまいました。

と成りのトトロ

Re: eclipse cross gcc でライブラリィのリンクが出来ない

#6

投稿記事 by と成りのトトロ » 8年前

ご苦労様です!。先頭にlibを付けるところが味噌でしたか。ひとつ経験値が上がりましたね。(実際の現場では理論より経験値とカンですよね)参考になりました。16進数でマシン語を見てたころがなつかしい..。また掲示板に来て下さい。

閉鎖

“C言語何でも質問掲示板” へ戻る