189489J
@189489J (フルカワ ソラ)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

C言語でうまくライブラリを繋げられない

解決したいこと

このサイトを参考にC言語で画像処理の勉強をしていて

libjpegのエンコード用ライブラリのインストール

グレースケール画像の作成

を行っていた際にエラーが生じました。

発生している問題・エラー

***:~/ドキュメント/〜〜〜/mono$ gcc main.c  -ljpeg

/usr/bin/ld: /tmp/cc9MyxS4.o: in function `main':
main.c:(.text+0x69): undefined reference to `jpegFileReadDecode'
/usr/bin/ld: main.c:(.text+0x29c): undefined reference to `jpegFileEncodeWrite'
/usr/bin/ld: main.c:(.text+0x2bf): undefined reference to `freeBitmapData'
/usr/bin/ld: main.c:(.text+0x2d5): undefined reference to `freeBitmapData'
collect2: error: ld returned 1 exit status

となり、exeファイルが出力されない。

コピーアンドペーストなので基本的に問題はないはずなのですが上記のようなエラーが出ます。

自分で試したこと

ヘッダファイルの確認やmain.cに

include 'myJpeg'

を追加したりした。

もちろん同じディレクトリにヘッダファイルを保存したり
初歩的な点はミスがないはずなのですが
Screenshot from 2023-11-17 17-06-13.png

どなたか分かる方いらっしゃるでしょうか。

0

1Answer

include 'myJpeg'

↑コンパイルエラーにならないのが不思議ですが、正しくは↓こう書きます。
(今どきのCコンパイラは、上の書式でもOKなんですかね?)

#include "myJpeg.h"

myJpeg.cも一緒にコンパイルしてあげる必要があるのでは?

gcc main.c myJpeg.c -ljpeg
2Like

Comments

  1. @189489J

    Questioner

    返信遅れました。解決しました。ありがとうございます。

Your answer might help someone💌