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

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

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

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

2回答

1013閲覧

自作ライブラリを作成してコンパイルしてビルドしたい

退会済みユーザー

退会済みユーザー

総合スコア0

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2022/08/05 05:35

編集2022/08/05 09:47

「Color.cppとColor.hpp ncursesライブラリ」を静的ライブラリにしてそれをMain.cppで使いたいのですが以下の実行してコマンド部まではうまく行くのですがエラー部のようにMain.cppをコンパイルするが出来ず参考サイトように.oファイルと一緒にビルド出来ません。
これはどうやるのでしょうか?

やりたいこと

「Color.hpp Color.cpp ncursesライブラリ」という静的ライブラリを生成して
それをMain.cppで使いたい

参考サイト: https://www.yunabe.jp/docs/static_library.html

エラー
Shigurechan@Shigurechan:~/Project/ConsoleGame/lib $ g++ Main.cpp /usr/bin/ld: /tmp/cc9IT7mN.o: in function `main': Main.cpp:(.text+0x8): undefined reference to `init_colorpairs()' collect2: error: ld returned 1 exit status Shigurechan@Shigurechan:~/Project/ConsoleGame/lib $ g++ Main.cpp -ltest.a /usr/bin/ld: -ltest.a が見つかりません collect2: error: ld returned 1 exit status Shigurechan@Shigurechan:~/Project/ConsoleGame/lib $ g++ Main.cpp test.a /usr/bin/ld: test.a(Color.o): in function `init_colorpairs()': Color.cpp:(.text+0x68): undefined reference to `init_pair' /usr/bin/ld: test.a(Color.o): in function `setcolor(int, int)': Color.cpp:(.text+0x1cc): undefined reference to `stdscr' /usr/bin/ld: Color.cpp:(.text+0x1d0): undefined reference to `stdscr' /usr/bin/ld: Color.cpp:(.text+0x1f8): undefined reference to `wattr_on' /usr/bin/ld: Color.cpp:(.text+0x218): undefined reference to `stdscr' /usr/bin/ld: Color.cpp:(.text+0x21c): undefined reference to `stdscr' /usr/bin/ld: Color.cpp:(.text+0x22c): undefined reference to `wattr_on' /usr/bin/ld: test.a(Color.o): in function `unsetcolor(int, int)': Color.cpp:(.text+0x254): undefined reference to `stdscr' /usr/bin/ld: Color.cpp:(.text+0x258): undefined reference to `stdscr' /usr/bin/ld: Color.cpp:(.text+0x280): undefined reference to `wattr_off' /usr/bin/ld: Color.cpp:(.text+0x2a0): undefined reference to `stdscr' /usr/bin/ld: Color.cpp:(.text+0x2a4): undefined reference to `stdscr' /usr/bin/ld: Color.cpp:(.text+0x2b4): undefined reference to `wattr_off' collect2: error: ld returned 1 exit status Shigurechan@Shigurechan:~/Project/ConsoleGame/lib $
実行したコマンド
Shigurechan@Shigurechan:~/Project/ConsoleGame/lib $ g++ -c Color.cpp Shigurechan@Shigurechan:~/Project/ConsoleGame/lib $ ar rcs test.a Color.o Shigurechan@Shigurechan:~/Project/ConsoleGame/lib $
tree
Shigurechan@Shigurechan:~/Project/ConsoleGame/lib $ tree . ├── Color.cpp ├── Color.cpp~ ├── Color.hpp ├── Color.o ├── Main.cpp ├── Main.cpp~ └── test.a

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

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

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

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

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

guest

回答2

0

ベストアンサー

エラーメッセージを見ると、ncurses の関数が見つからないようです。
-lncurses が必要だと思います。
もし、ncurses も静的リンクにするのであれば、libncurses.a (ncurses のスタティックライブラリ) が必要です。

投稿2022/08/05 13:24

TaichiYanagiya

総合スコア12146

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

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

0

Shigurechan@Shigurechan:~/Project/ConsoleGame/lib $ g++ Main.cpp

ライブラリの指定がありません

投稿2022/08/05 05:54

y_waiwai

総合スコア87747

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

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

退会済みユーザー

退会済みユーザー

2022/08/05 06:24 編集

質問ですが以下のようにしたのですがエラーが出ます。 ``` Shigurechan@Shigurechan:~/Project/lib/src $ g++ Main.cpp -lncurses /usr/bin/ld: /tmp/ccD6TYRs.o: in function `main': Main.cpp:(.text+0x18): undefined reference to `init_colorpairs()' collect2: error: ld returned 1 exit status ``` 質問文のtreeの場合のコマンドの実行順序を教えてもらえますか?
y_waiwai

2022/08/05 06:45

エラーメッセージ読みましょう init_colorpairs関数が存在しないと言ってますよ
退会済みユーザー

退会済みユーザー

2022/08/05 09:46

すいません、自分がやりたいことは「Color.hpp Color.cpp nucrsesライブラリ」の静的ライブラリを生成してそれをMain.cppで使いたいのですが g++ Main.cpp のコマンドにColor.cppを含めるのはおかしいと思うのですがどうなのでしょうか?
y_waiwai

2022/08/05 10:00

おかしいなら、どうやってライブラリをリンクするつもりなんでしょうか
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問