Solaris2.6の環境です。
C++プログラム初学者です。
% uname -a
SunOS ultra 5.6 Generic_105181-23 sun4m sparc SUNW,SPARCstation-5
C++プログラムの学習中にC++のリストをmake使用とすると
% cd ~/test
% make
g++ -c -o timer.o timer.cc
cpp0: /var/tmp/cczy3NgV.ii: デバイス上の空き領域が足りません。
make: *** [timer.o] Error 1
というエラーが出てしまい、困っています。
% ls -l /var/tmp
合計 2086
-rw------- 1 matsui master 0 3月 13日 21:19 Ex0000001239
-rw------- 1 root root 821304 3月 14日 22:20 wsconAAA7eaqNa:0.0
-rw------- 1 root root 35659 2月 8日 19:05 wsconAAAP0aaNa:0.0
-rw------- 1 matsui master 0 1月 27日 17:44 wsconAAAXlaitb:0.0
-rw------- 1 root root 187687 2月 7日 19:31 wsconAAAxBaWxc:0.0
% df -k
Filesystem Kバイト used avail capacity Mounted on
/dev/dsk/c0t3d0s0 57567 21273 30538 42% /
/dev/dsk/c0t3d0s6 694454 497069 141829 78% /usr
/proc 0 0 0 0% /proc
fd 0 0 0 0% /dev/fd
/dev/dsk/c0t3d0s1 47975 44685 0 100% /var
/dev/dsk/c0t3d0s7 38383 14633 19912 43% /workl
swap 137384 16 137368 1% /tmp
lucas:/usr/local 1687016 824880 811528 51% /usr/local
lucas:/home 14110472 3550904 10418464 26% /home
lucas:/workn 57384 31880 19768 62% /workn
となっているのですがこれはどうすれば解決できるのでしょうか?
No.2ベストアンサー
- 回答日時:
根本的な解決はNo.1で回答されている方のいう通りdisk full(空き領域なし)になっている/varの不要ファイルを削除して領域を空ける事ですが、そもそも/varの容量自体少ないようですから、こまめにチェックしてdisk fullが出ないようにしないといけないですよ。
/var配下のディレクトリに各種プログラムのログが出力されるでしょうからなおさらです。
また、今回は、
>コンパイル時には/var/tmp下に一時ファイルが生成されるのですね。
>この一時ファイルが生成できないと実行ファイルが生成できなくなってしまうのですね。
という不具合だけで済んでいるかもしれませんが、他に不具合が出てくる可能性も否めません。
あと、g++(C++)コンパイラの一時ファイルの作成先は、環境変数TMPDIRを設定する事によって/var/tmp以外にする事が可能です(一時的な回避策)。
この回答への補足
ご回答ありがとうございます。
遅くなりましてスイマセン。
> 根本的な解決はNo.1で回答されている方のいう通りdisk full(空き領域なし)になっ
> ている/varの不要ファイルを削除して領域を空ける事ですが、そもそも/varの容量自
> 体少ないようですから、こまめにチェックしてdisk fullが出ないようにしないとい
> けないですよ。
ご忠告感謝致します。気をつけたいと思います。
> /var配下のディレクトリに各種プログラムのログが出力されるでしょうからなおさら
> です。
% df -k | grep var
/dev/dsk/c0t3d0s1 47975 16655 26523 39% /var
でエラー「cpp0: /var/tmp/cczy3NgV.ii: デバイス上の空き領域が足りません。
ake: *** [timer.o] Error 1」
は解消されました。\(^o^)/
> という不具合だけで済んでいるかもしれませんが、他に不具合が出てくる可能性も否
> めません。
了解致しました。
> あと、g++(C++)コンパイラの一時ファイルの作成先は、環境変数TMPDIRを設定する事
> によって/var/tmp以外にする事が可能です(一時的な回避策)。
有難うございます。これは大変有益な情報です。
エーと、早速試してみたのですがこういう事ですかね。
% ls -a ~/ | grep shrc
.cshrc*
% cat .cshrc | grep TMPDIR
setenv TMPDIR ~/tmp
% source .cshrc
% echo $TMPDIR
/home/m/kaorim/tmp
% cat ./test.cc
#include<stdio.h>
int main(void){
printf("hello world");
return 0;
}
% ls ./
test.cc*
% g++ -o test test.cc
% ls
test* test.cc*
% ls -a ~/tmp
./ ../
としたのですが~/tmpには何も排出されませんでした。
うーん、やり方を勘違いしてますでしょうか?
No.3
- 回答日時:
>% g++ -o test test.cc
上記の処理中に一時的に作成されるものですから、これが終了した後に確認してもファイルは何も存在しないと思いますよ。
どうしても、環境変数TEMPDIRで指定したディレクトリに一時ファイルが作成されるか確認したい場合は、別ターミナルで無限ループでそのディレクトリをlsするようなシェルスクリプトなりを動かした状態でコンパイルを行って確認すればいいと思いますよ。
No.1
- 回答日時:
df の結果のとおりです。
Filesystem Kバイト used avail capacity Mounted on
/dev/dsk/c0t3d0s1 47975 44685 0 100% /var
一般ユーザが使える領域がないだけです。
要らないファイルを消すとかして使える領域を空けましょう。
この回答への補足
有難うございます。
> df の結果のとおりです。
> Filesystem Kバイト used avail capacity Mounted on
> /dev/dsk/c0t3d0s1 47975 44685 0 100% /var
コンパイル時には/var/tmp下に一時ファイルが生成されるのですね。
この一時ファイルが生成できないと実行ファイルが生成できなくなってしまうのですね。
> 一般ユーザが使える領域がないだけです。
> 要らないファイルを消すとかして使える領域を空けましょう。
どれが不要なファイルか調べてみたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Kali Linuxで起動できない - Minimal BASH Like Line Editing 1 2022/06/03 13:14
- UNIX・Linux postfix smtpサーバーリレーがTLSハンドシェーク失敗 1 2022/08/15 15:45
- その他(プログラミング・Web制作) mariadbでのエラー 1 2022/11/15 12:31
- UNIX・Linux マスターブートレコード方式のbiosを使ったシステムでインストールされたlinuxで/dev/sda 1 2023/05/13 21:23
- その他(パソコン・スマホ・電化製品) pthonのframeに演算結果(数値)を表示したい 1 2023/06/05 22:08
- UNIX・Linux cronの@rebootでのdateコマンドの実行につきまして 2 2023/06/11 16:23
- UNIX・Linux VirtualBox ゲストOSにPC内蔵HDDのパーティションをマウントする方法は? 2 2023/05/06 22:52
- UNIX・Linux swapが機能しているかの確認について 2 2022/09/18 13:17
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FTPでファイルがダウンロードで...
-
lsでディレクトリのサイズが409...
-
shellscript内のコマンドを、su...
-
cgi-binにアクセスできない
-
winSCPでlinuxフォルダを作りたい
-
umask757をvar/www/htmlへ適用?
-
apacheのディレクトリ制限
-
ファイルが移動できません。
-
あり得ない!アーカイブを展開...
-
Index.html表示しない!!
-
嫌ってるのに真似してきたりマ...
-
Winmerge ファイルの中身は同じ...
-
onedriveの中身を削除したらパ...
-
コマンドプロンプトによるフォ...
-
メモ帳での一括たて列選択
-
macのdmgファイル(動画)をMP4...
-
教えてください!困ってます。
-
dlopenで目的の*.soファイルを...
-
emlをtxtに変換するには?
-
能ある鷹は爪を隠す
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FTPでファイルがダウンロードで...
-
ファイルが移動できません。
-
lsでディレクトリのサイズが409...
-
shellscript内のコマンドを、su...
-
Index.html表示しない!!
-
RPM のソースパッケージが展開...
-
Ubuntu、ファイル移動によるエ...
-
シンボリックリンクでパミッシ...
-
「E212:書込み用にファイルを開...
-
PHPでchmod()を使えるようにす...
-
あり得ない!アーカイブを展開...
-
winSCPでlinuxフォルダを作りたい
-
ファイル「所有者」と「所有グ...
-
書き込み権限がありません
-
Apacheのドキュメントルート配...
-
apacheユーザの実行権限設定は...
-
ダウンロードしたファイル
-
SFTPでファイルのアップロード...
-
vsftpで共有ディレクトリ
-
rootユーザのメールボックスへ...
おすすめ情報