質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Q&A

解決済

2回答

4232閲覧

Windows上でのRaspberryPi用のthreadプログラムのリンクエラー

Dmix

総合スコア20

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

0グッド

0クリップ

投稿2016/07/13 08:11

編集2016/07/13 09:49

###前提・実現したいこと
RaspberryPi用ソフトをC++にて作っています。
まずは、Windows上でEclipseを使用しコンパイルなどを
行っています。

pthreadを使用したプログラムなのですが、Windows上でコンパイルは
通るのですが、リンクにてthreadライブラリが見つからない旨のエラーが
出て困っています。
最終的には、windows上でリンクまで正常に実行し、RaspberryPiへリモート接続しデバッグを行いたいと思っています。

###発生している問題・エラーメッセージ
パス C:\SysGCC\Raspberry\arm-linux-gnueabihf\sysroot\usr\lib\arm-linux-gnueabihf
ライブラリ libpthread.so
を設定してリンクしています。
エラーは以下の通りです。
'Invoking: Cross G++ Linker'
arm-linux-gnueabihf-g++ -L"C:\SysGCC\Raspberry\arm-linux-gnueabihf\sysroot\usr\lib\arm-linux-gnueabihf" -o "nsample" ./nsample.o -llibpthread.so
c:/sysgcc/raspberry/bin/../lib/gcc/arm-linux-gnueabihf/4.6/../../../../arm-linux-gnueabihf/bin/ld.exe: cannot find -llibpthread.so
collect2: ld returned 1 exit status
make: *** [nbeat] Error 1

###試したこと
libpthread.soを見ると、以下の記載でした
OUTPUT_FORMAT(elf32-littlearm)
GROUP ( /lib/arm-linux-gnueabihf/libpthread.so.0 /usr/lib/arm-linux-gnueabihf/libpthread_nonshared.a )
ので、それぞれの
パス
C:\SysGCC\Raspberry\arm-linux-gnueabihf\sysroot\usr\lib\arm-linux-gnueabihf
C:\SysGCC\Raspberry\arm-linux-gnueabihf\sysroot\lib\arm-linux-gnueabihf
とライブラリを設定したのですが、リンクは両ライブラリとも同じエラーが表示され通りませんでした。

###補足情報(言語/FW/ツール等のバージョンなど)
Eclipse Mars.2 Release (4.5.2)
(日本語 Eclipse 4.5 Pleiades All in One Javaに
C/C++ GCC Cross Compiler Support等を追加しています。)
raspberry-gcc4.6.3 リンク内容

宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

自己解決しました。
Eclipseのライブラリフォルダを未記載、ライブラリ名をpthreadと記載する事で、リンクが正常に終了しました。

投稿2016/07/20 00:14

Dmix

総合スコア20

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

cannot find -llibpthread.so

これがミョーに気になる。 cannot find libpthread.so ならわかるんだけど。
コンパイル・オプションには -lpthread って書いてるんですよね?

投稿2016/07/14 00:03

episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Dmix

2016/07/14 00:58

そうです。自動的に付いています。 コマンドオプションの記載だと思うのですが、-lの後にスペースなしでライブラリの記載で良いのか?と思って質問を挙げた後も色々やってみました。 eclipseのプロジェクトオプションのC/C++一般->パスおよびシンボル中のライブラリー、ライブラリーパスに追加してリンクしているのですが、 記載が悪いのかとC/C++ビルド->設定中のLinkerのライブラリでスペースを入れてみると(C/C++一般で行うとスペースは入らなかった) make all 'Building target: nbeat' 'Invoking: Cross G++ Linker' arm-linux-gnueabihf-g++ -L"C:\SysGCC\Raspberry\arm-linux-gnueabihf\sysroot\usr\lib\arm-linux-gnueabihf" -o "nsample" ./nsample.o -l\ libpthread.so arm-linux-gnueabihf-g++: error: libpthread.so: No such file or directory make: *** [nbeat] Error 1 と言う様にコマンドオプションが変になるんですよ。 「"」でくくると make all 'Building target: nbeat' 'Invoking: Cross G++ Linker' arm-linux-gnueabihf-g++ -L"C:\SysGCC\Raspberry\arm-linux-gnueabihf\sysroot\usr\lib\arm-linux-gnueabihf" -o "nsample" ./nsample.o -l"libpthread.so" c:/sysgcc/raspberry/bin/../lib/gcc/arm-linux-gnueabihf/4.6/../../../../arm-linux-gnueabihf/bin/ld.exe: cannot find -llibpthread.so collect2: ld returned 1 exit status make: *** [nbeat] Error 1 となります。 eclipseに問題がありそうですかねぇ。。。。と思いだしてます。
episteme

2016/07/14 01:36

んーむ... shell(commandline)から直に make ってやれて、それでちゃんとコンパイル/リンクできるなら eclipseなりplug-inなりが悪さしてんでしょけどねー
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問