gcc (GCC) 4.7.2
c89
こんにちは、
私のservice.hファイルには次のものがあります
enum service_state_code {
NO_ERROR_OK,
ERROR_INCORRECT_STATE,
ERROR_EMPTY_STRING,
ERROR_NO_COMMAND_FOUND
};
const char *service_state_msg[] = {
"OK:",
"ERROR: Incorrect state for modifying service channel state",
"ERROR: No command found",
"ERROR: No command parameters",
NULL
};
get_channel_service_state(channel_t *channel, const char *msg);
そして、service.h ファイルを含む 2 つの *.c ファイルがあります。
network.c
とsocket.c
そして、私はそれを次のように使用します:
get_channel_service_state(channel, ss7_service_state_msg[ERROR_INCORRECT_STATE]);
ただし、次のことについて不平を言うリンカ エラーが発生します。
multiple definition of service_state_msg first defined here
このエラーが発生する理由はわかっています。これはservice_state_msg
、*.c ファイルに含まれるたびに、service.h でグローバルとして 2 回定義されているためです。
service_state_msg
複数の *.c ソース ファイルで使用する最善の方法は何ですか?
ご提案いただきありがとうございます。