お世話になります。
既存のC言語プログラムの一部を修正し、makefileを使用してコンパイルを行ったのですが、
以下のエラーメッセージが出てしまい、コンパイルすることができません。
自分なりに調べてみましたが、解決策が見つかりませんでした。
対応方法ご存知の方、もしくは、参考になる情報お持ちの方、助けて頂けると幸いです。
メッセージ : /usr/bin/ld: cannot find -lsendmail
OSはCentOS 5.5です。
sendmail関係のインストールは行っています。
C言語の開発経験が乏しく、困っています。
お手数をお掛けして申し訳ありませんが、ご協力をお願い致します。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
>ただ、コンパイルを行っているのは、事情により元々コンパイルした環境とは
>別の環境で行っています。
元々の環境を調べてlibsendmail.so(もしくは libsendmail.a)が何でインストールされるものか調べてみてください。
CentOS 5.10をインストールして調べてみましたがsendmailやsendmail-develをインストールしてもlibsendmail.soはインストールされなかったので何か別のものでインストールされたものだと思います。
最悪、元々の環境でもコンパイルできてなかった可能性もありえるかもしれませんが。
No.2
- 回答日時:
libsendmail.so もしくは libsendmail.a が見つからないという事になるんですが、
もしかしてMakefileに手を加えて -lsendmail など書き加えました?
私が知らないだけかもしれませんが sendmail をインストールしても libsendmail.so, libsendmail.a は存在しないと思うのですが。
>対応方法ご存知の方、もしくは、参考になる情報お持ちの方、助けて頂けると幸いです。
的確な回答を得たいのでしたら、どの様な変更をされたのか、どうコンパイルしようとしたのかとそのログくらいは書かれた方がいいですよ。
回答頂き、ありがとうございました。
情報が少なくて、申し訳ありません。
プログラム変更した内容は、PostgresqlテーブルのSELECT文のwhere句に
条件文を1行追加しただけですので、sendmailとは関係ない部分です。
makefileは既存のものに対して変更を行っていません。
ただ、コンパイルを行っているのは、事情により元々コンパイルした環境とは
別の環境で行っています。
コンパイルを行っているcentosにはyumでgcc、sendmailをインストールしました。
makefileは以下のように記述されています。
もし何かわかることあればご教授ください。
よろしくお願い致します。
TARGET = test_prg
CC = gcc
RM = rm -vf
.SUFFIXES : .o .c .h
# --------------------------------------------------------------------------
# source files
# --------------------------------------------------------------------------
SRCS = $(shell ls *.c)
OBJS = ${SRCS:.c=.o}
# --------------------------------------------------------------------------
# CC -c
# --------------------------------------------------------------------------
CFLAGS = -Wall -g -O0
INC = -I/usr/include/pgsql/server
# --------------------------------------------------------------------------
# CC -o
# --------------------------------------------------------------------------
LIB = -lpthread -lpq -lsendmail
LIBINC = -L./
# --------------------------------------------------------------------------
# rules
# --------------------------------------------------------------------------
all : dep ${OBJS} ${TARGET}
# ------- link -------
${TARGET} :
${CC} -o $@ ${OBJS} ${CFLAGS} ${LIBINC} ${LIB}
# ------- compile -------
.c.o :
${CC} ${CFLAGS} ${INC} -c $<
# ------- dependent -------
dep :
${CC} -M ${CFLAGS} ${INC} ${SRCS} > makefile.dep
clean :
${RM} ${OBJS}
${RM} makefile.dep
${RM} ${TARGET}
No.1
- 回答日時:
makefileのコンパイル部分に-lsendmailを加えれば大丈夫だと思います
回答頂き、ありがとうございました。
情報が少なくて、申し訳ありません。
プログラム変更した内容は、PostgresqlテーブルのSELECT文のwhere句に
条件文を1行追加しただけですので、sendmailとは関係ない部分です。
makefileは既存のものに対して変更を行っていません。
ただ、コンパイルを行っているのは、事情により元々コンパイルした環境とは
別の環境で行っています。
コンパイルを行っているcentosにはyumでgcc、sendmailをインストールしました。
makefileは以下のように記述されています。
もし何かわかることあればご教授ください。
よろしくお願い致します。
TARGET = test_prg
CC = gcc
RM = rm -vf
.SUFFIXES : .o .c .h
# --------------------------------------------------------------------------
# source files
# --------------------------------------------------------------------------
SRCS = $(shell ls *.c)
OBJS = ${SRCS:.c=.o}
# --------------------------------------------------------------------------
# CC -c
# --------------------------------------------------------------------------
CFLAGS = -Wall -g -O0
INC = -I/usr/include/pgsql/server
# --------------------------------------------------------------------------
# CC -o
# --------------------------------------------------------------------------
LIB = -lpthread -lpq -lsendmail
LIBINC = -L./
# --------------------------------------------------------------------------
# rules
# --------------------------------------------------------------------------
all : dep ${OBJS} ${TARGET}
# ------- link -------
${TARGET} :
${CC} -o $@ ${OBJS} ${CFLAGS} ${LIBINC} ${LIB}
# ------- compile -------
.c.o :
${CC} ${CFLAGS} ${INC} -c $<
# ------- dependent -------
dep :
${CC} -M ${CFLAGS} ${INC} ${SRCS} > makefile.dep
clean :
${RM} ${OBJS}
${RM} makefile.dep
${RM} ${TARGET}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- C言語・C++・C# 参考にいろいろとc言語、c++言語プログラミングでレジストリーを操作したいのですが、無料配布のc++ 3 2022/12/22 01:49
- C言語・C++・C# exeファイルが作れない(windows10) 6 2022/08/13 08:47
- その他(プログラミング・Web制作) ラズパイ上の、pythonのエラーについて 1 2023/04/12 23:27
- IT・エンジニアリング ITエンジニアの勉強時間や勉強方法について 初めまして閲覧いただきありがとうございます。 当方25歳 4 2022/06/09 18:51
- C言語・C++・C# visual studio 2019 についての質問です 1 2022/09/21 09:58
- C言語・C++・C# プログラム内から、MIDIファイルの一部分だけを再生する方法 1 2023/02/15 11:08
- ダイヤルアップ Raspberry Piでアナログモデム経由で音声再生 1 2022/05/20 18:01
- PostgreSQL PostgreSQL14.6のSSL対応について 1 2023/01/05 15:42
- C言語・C++・C# 3×3のラテン方陣をつくるプログラムを作成したのですが、(↓) #include <stdio.h> 5 2023/07/10 01:53
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<unistd.h>をVisualStudioでつ...
-
実行後にコンパイルに失敗しま...
-
アプリケーションのDLLファイル...
-
プレコンパイルの意味を教えて...
-
Cのコンパイルでコメントアウト...
-
#ifdefの意味、使用方法が載っ...
-
gcc バージョン違いによるコン...
-
コンパイル失敗と表示されまし...
-
プログラム Arduino
-
NASMとMASMの違い
-
gccコンパイルできない原因は!?
-
vba コンパイル
-
OpenSSLについて。実行できませ...
-
return (0)の括弧は何故付ける
-
コンパイル時に「out of memory...
-
gcc コンパイル killed
-
[COBOL] ソースの復帰
-
c言語です コンパイルした時に...
-
cygwin コンパイル エラー
-
CMakeでfortranをコンパイルしたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<unistd.h>をVisualStudioでつ...
-
アプリケーションのDLLファイル...
-
math.hに含まれる関数が使えない
-
C言語をコンパイルするとコンピ...
-
実行後にコンパイルに失敗しま...
-
ビープ音が鳴りません・・・
-
c言語です コンパイルした時に...
-
C#で char型とstring型の比較で...
-
すべてのリビルド: 0 正常、 0 ...
-
共有ライブラリの内容確認について
-
C言語で作ったらWindowsでもMac...
-
Verilog_HDLでのdefineとifdef
-
<math.h>ヘッダを入力している...
-
gcc コンパイル killed
-
64ビットのlinuxで32ビットメモ...
-
MVSマシンで0C7でABENDしたので...
-
[COBOL] ソースの復帰
-
プレコンパイルの意味を教えて...
-
libsshのコンパイルエラー
-
Visual Basic.NETの処理速度は6...
おすすめ情報