現在Ubuntu LinuxのgccでC言語のプログラムをやっています。
https://sourceforge.jp/projects/cc1101driver/scm …
このツリーのcode.hに ”const sig_code2_t PVC_TCP_SIG_CODE[100] = {” というコードを追加してmakeを行うと次のようなエラーが出て実行ファイルが出力されません。
(エラー内容)
---------------(中略)-----------------
gcc -o exe main.o event.o env.o audio.o task.o comm.o menu_show_status.o mount.o net.o misc.o -lpthread
event.o:(.rodata+0x0): multiple definition of `PVC_TCP_SIG_CODE'
main.o:(.rodata+0x0): first defined here
env.o:(.rodata+0x0): multiple definition of `PVC_TCP_SIG_CODE'
main.o:(.rodata+0x0): first defined here
audio.o:(.rodata+0x0): multiple definition of `PVC_TCP_SIG_CODE'
main.o:(.rodata+0x0): first defined here
task.o:(.rodata+0x0): multiple definition of `PVC_TCP_SIG_CODE'
main.o:(.rodata+0x0): first defined here
comm.o:(.rodata+0x0): multiple definition of `PVC_TCP_SIG_CODE'
main.o:(.rodata+0x0): first defined here
mount.o:(.rodata+0x0): multiple definition of `PVC_TCP_SIG_CODE'
main.o:(.rodata+0x0): first defined here
net.o:(.rodata+0x0): multiple definition of `PVC_TCP_SIG_CODE'
main.o:(.rodata+0x0): first defined here
misc.o:(.rodata+0x0): multiple definition of `PVC_TCP_SIG_CODE'
main.o:(.rodata+0x0): first defined here
collect2: error: ld returned 1 exit status
make: *** [exe] Error 1
この const sig_code2_t PVC_TCP_SIG_CODE[100] = {をコメントアウト正常にビルドできるのですが、
この問題を解決するにはどうすれば良いのかご教示頂きますようお願い致します。
No.1ベストアンサー
- 回答日時:
お約束の「ヘッダに実体を定義してはいけない」ってヤツです。
code.hに記述した内容はall_includes.hに適用されます。
all_includes.h内で#include "code.h"していますからね。
で、all_includes.hの内容はそれぞれ
audio.c、comm.c、env.c、event.c、main.c、misc.c、mount.c、net.c、task.cに適用されます。
つまり、code.hに記述した内容も
audio.c、comm.c、env.c、event.c、main.c、misc.c、mount.c、net.c、task.cに適用されます。
それぞれのオブジェクトファイルにPVC_TCP_SIG_CODE[100]が存在します。
リンクする段階でどのオブジェクトファイルのPVC_TCP_SIG_CODE[100]を使用したらいいのでしょうか?????
というエラーです。
extern宣言して、実体をどこかのソースファイルのみに記述する。
というのが一般的な対処方法です。
# static宣言にすればとりあえずリンクは通るかもしれませんが…無駄が出ますねぇ。
# 今回はconstなので、メモリに無駄が出るだけ…で済むかと思われますが。
http://d.hatena.ne.jp/saitodevel01/20110321/1300 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 英語 Purpose: The tissue-engineered bone consisting of 1 2022/12/30 11:56
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- その他(プログラミング・Web制作) vscodeエラー 1 2022/05/01 21:01
- 英語 the code of computer 検索すると computer の前に a がなく、単数形 2 2023/04/24 06:03
- UNIX・Linux Linuxについて質問です。 以下のような設定をしたMakefileを作成するにはどう記述すればよい 1 2023/02/03 20:10
- 英語 英文の添削をお願いします 4 2023/05/23 11:10
- その他(プログラミング・Web制作) Pythonでのアニメーション 1 2023/06/01 15:58
- VPN 何これ 1 2022/04/19 01:32
- Visual Basic(VBA) CODE関数のvbaバージョンか方法はありますか? 5 2022/09/01 17:00
- Visual Basic(VBA) ローマ字、ハイフン付きの並び替え ローマ字抽出方法 Excelマクロ 4 2022/04/01 14:10
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
【gcc・cygwin】multiple definitionエラーの解決法
C言語・C++・C#
-
関数の実体定義にヘッダファイルの2重定義防止方法が効かない?
C言語・C++・C#
-
c++,ある関数のクラスから別のクラスの関数を呼ぶ
C言語・C++・C#
-
-
4
PCC-S-02201エラーの対処を教えてください!
Oracle
-
5
C言語でヘッダファイルにグローバル変数を宣言する
C言語・C++・C#
-
6
C言語で、メモリを解放しないで終わるプログラム
C言語・C++・C#
-
7
printfなど、標準関数のソースコードが知りたい
C言語・C++・C#
-
8
typedef enumの使い方を教えてください
C言語・C++・C#
-
9
C言語のポインタに直接アドレスを割り振りしたい
C言語・C++・C#
-
10
C++にてtemplateで受け取った任意の型の変数が何型であるかを判定したい
C言語・C++・C#
-
11
Linuxでのスレッド間メッセージについて
C言語・C++・C#
-
12
PRO*C コンパイルエラー
C言語・C++・C#
-
13
C++言語で、構造体のコピーは可能(しても良い)のでしょうか?
C言語・C++・C#
-
14
戻り値で構造体を返すことは可能でしょうか?
C言語・C++・C#
-
15
<unistd.h>をVisualStudioでつかえるようにする
C言語・C++・C#
-
16
C言語初心者の質問失礼します。
C言語・C++・C#
-
17
C言語のポインターに関する警告
C言語・C++・C#
-
18
至急です! マクロ定義で #define NUMBER 10とし 関数で max(double ma
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
適切な変換関数が存在しない???
-
コンパイルできません。
-
バッチからsqlplusの接続エラー...
-
sys/time.hのインクルードがで...
-
HEWを使用しているのですが、こ...
-
Excelのエラーで困ってます。
-
ビルド時にinet_ptonが見つから...
-
ビルドが失敗してしまいます
-
LPCWSTRとchar
-
ビルド失敗 指定されたファイ...
-
VB2008で定数に色の設定をした...
-
VB6 実行時エラー -2(fffffffe)
-
デバッグ中のエラーのことで教...
-
RightとLeft関数のライブ...
-
VBAでファイルを開くプログラム...
-
fortranでプログラムを実行する...
-
C言語でpgm形式の画像を読み込...
-
右オペランドを扱う演算子は定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
適切な変換関数が存在しない???
-
Excelのエラーで困ってます。
-
バッチからsqlplusの接続エラー...
-
fortranでプログラムを実行する...
-
HEWを使用しているのですが、こ...
-
コンパイルできません。
-
デバッグ中のエラーのことで教...
-
visual C++ でビルドの中止がで...
-
BC30002: 型 'ListItem' が定義...
-
Handlesについて
-
sys/time.hのインクルードがで...
-
ビルド失敗 指定されたファイ...
-
VB2008で定数に色の設定をした...
-
RightとLeft関数のライブ...
-
multiple definitionというエラー
-
WindowsからLinuxへの移植
-
HANDLEの宣言でのエラー
-
レコードセットをcloseする所で...
おすすめ情報