私はC言語で書かれたアプリケーションを持っています。私はC++で追加する必要がある新しい機能です。私はGCCを使ってCアプリケーションをビルドします。 G ++で既存のアプリケーションを構築するにはC++コンパイラによるCアプリケーションのビルド
:新しい機能を追加するには 。
新しい機能を追加します。私は(1)を実行しようとしました
、私は次のような問題に会った: ファイルdev_table.cで定義された配列:ファイルstm.cで
const type_name devices[] = {...};
私がすることで、この配列をエクスポートします:
extern const type_name devices[];
そして、私が割り当て
stm->dev = devices;
リンカーが失敗します。
GCCで同じコードをビルドしても、すべて問題なく動作しますが、G ++では失敗します。私は両方の場所(dev_table.c
とstm.c
)からconst
を削除した場合
、それは私が理由が何であるかを理解していないにもうまく機能しているので、問題が解決され、けど。
以前に取得したエラーは何でしたか? – piyushj
'g ++'でビルドしたときのコマンドラインは何ですか?その出力は何ですか? – purplepsycho
C++で配列を割り当てることはできません。 IDKならC言語ではできますが、C++ではできません。もしあなたがそれを必要とするなら、[std :: array](http://en.cppreference.com/w/cpp/container/array)を使うことをお勧めします。 – NathanOliver