Linux 上で GCC/G++ コンパイラーをサポートされているバージョンに変更する方法を教えて下さい。
10 ビュー (過去 30 日間)
古いコメントを表示
MathWorks Support Team
2019 年 4 月 5 日
編集済み: MathWorks Support Team
2023 年 4 月 27 日
Linux 上で "mex -setup" により GCC/G++ コンパイラーをサポートされているバージョンに変更しようと考えています。
方法を教えて下さい。
採用された回答
MathWorks Support Team
2023 年 4 月 27 日
編集済み: MathWorks Support Team
2023 年 4 月 27 日
Linux では "mex -setup" によりコンパイラーを変更する方法は残念ながら提供されておりません。
現在のワークアラウンドとして以下のいづれかをご検討ください。
A. システムのデフォルトの "gcc" コマンドをサポートされているコンパイラーに紐付ける
1. Linux のターミナルを開き、以下のコマンドを実行します。
$ which gcc
これにより、デフォルトの GCC コンパイラーへのシンボリックリンク(ソフトリンク)が得られます。
2. 上記ソフトリンクが配置されているディレクトリーに移動します。
例えば、GCC 4.7 の標準インストールでコンパイラーコマンドは /usr/bin/gcc-4.7 として配置されますが、
"gcc" をこのコンパイラーに紐付けるため以下のコマンドを実行します。
$ sudo ln -f -s /usr/bin/gcc-4.7 gcc
上記コマンドの "gcc" はステップ 1 で得られるソフトリンクです。
ターミナル上で “ls –l gcc” を実行しますと、ソフトリンクは gcc-4.7 に指していることは確認できます.
なお、上記ステップ 1、2の代わりに、下記の一行でも同様の結果が得られます。
$ sudo ln -s -f `dirname \`which gcc\``/gcc-4.3 `which gcc`
3. 次に、MATLAB のコマンドウィンドウ上で以下のコマンドを実行します。
>> !gcc --version
これにより (システムおよび)MATLAB で使用される GCC のバージョン情報が表示されます。
仮に、上記の通り gcc-4.7 を設定した場合、gcc-4.7 に該当する情報が表示されます。
また、別の確認方法として "mex" コマンドの詳細表示("-v" オプション)を利用することもできます。
>> mex -v timestwo.c
B. (MATLAB R2013b およびそれ以前のリリースのみ) "mexopts.sh" ファイルにて GCC コンパイラーを指定する
MATLAB コマンドウィンドウ上で "mex -setup" を実行し、「1 > y」 の順で選択しますと、以下同様の出力が表示されます。
/usr/local/MATLAB/R2013b/bin/mexopts.sh is being copied to
/home/<username>/.matlab/R2013b/mexopts.sh
後者の "/home/<username>/.matlab/R2013b/mexopts.sh' をエディターで開きます。
コンパイラーは CC='gcc' の行にて記述されています。
'gcc' の部分を以下同様に目的のコンパイラーのパスで置き換えます:
CC='/usr/bin/gcc-4.7'
C. コンパイラーを mex コマンド実行時に指定します。
<MATLAB R2014a およびそれより新しいリリース>
目的のコンパイラーのパスをコンパイラーオプション(CC または GCC)で指定します:
>> mex -v GCC='/usr/bin/gcc-4.7' timestwo.c
>> mex -v CC='/usr/bin/gcc-4.7' timestwo.c
<MATLAB R2013b およびそれ以前のリリース>
目的のコンパイラーのパスをコンパイラーオプション(CC)で指定します:
>> mex -v CC='/usr/bin/gcc-4.7' timestwo.c
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で C MEX ファイル アプリケーション についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!