マンガでよめる痔のこと・薬のこと

Eclipseとcygwinを組み合わせて使用しています。

Eclipseのバージョンは以下の通りです。
Eclipse Indigo Service Release 2
Build id: 20120216-1857


Windowsの環境変数PATHの設定を削除して、EclipseのパースペクティブのPATH設定において
${te_cygwin_loc}\bin としています。

ところが、このパースペクティブ内で「プロジェクトのビルド」をしようとすると以下のエラーがでます。

Error: Program "make" is not found in PATH

PATH=[C:/Program Files/Java/jre7/bin/client;C:/Program Files/Java/jre7/bin;C:/Program Files/Java/jre7/lib/i386;C:\Windows\System32;C:\eclipse;]


どうもパースペクティブのPATH設定とはまったく別のPATHが設定されているようなのですが、これがどこで設定されたものなのかがよくわかりません。

なお、コマンドプロンプトでpathコマンドを実行した場合は、以下の通りとなります。
PATH=C:\Windows\System32



Eclipseにおいてcygwinのmake.exeがあるフォルダにパスを通したいのですが、パースペクティブのPATH設定以外にどこで設定するものなのでしょうか?

このQ&Aに関連する最新のQ&A

Windows make」に関するQ&A: Windowsでmake??

A 回答 (1件)

・${te_cygwin_loc}って何ですか?


https://www.google.co.jp/search?q=te_cygwin_loc
この質問しか出てきません。

・質問文で「パースペクティブ」を多用していますが、如何なる意図をもってパースペクティブなのでしょうか?

・普通にPATHの設定をするところで設定してはどうでしょうか。
「Eclipseの環境変数PATHの設定場」の回答画像1
    • good
    • 1
この回答へのお礼

回答ありがとうございます。

te_cygwin_locというのはcygwinのインストール場所を指すようですが、一般的なものではないようです。

パースペクティブを多用しましたが、まだeclipseの色々な点がわかっていませんでした。


画像で教えていただきました場所のPATHを設定するとmakeコマンドは見つかりました。
make allでエラーが出るので、この点解決していきます。

ありがとうございました。

お礼日時:2014/05/29 09:26

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QC言語での開発でエラーが出て困っています。

Eclipseを利用して初めてC言語で開発をしていますが、
エラーが発生していて困っています。
開発にはWindows7 の64ビット版を利用しています。
Program "g++" not found in PATH
Program "gcc" not found in PATH
Program "make" not found in PATH
の3種類が出ています。
初心者で申し訳ないです。
これらのエラーを解決する方法を教えてください。
宜しくお願いいたします。

Aベストアンサー

補足を読みました。
次はmakeですね。

 統合開発環境を起動してツールバーの中の「ウインドウ」→「設定」から「C/C++」をクリックし展開する。
 次に下の方の「新規 C/C++ プロジェクト・ウィザード」をクリック。

 中央のペインの「プロジェクトタイプ」で「実行可能」をクリックして展開。
 それぞれのプロジェクトが4種類現れるので、これをクリックし、右側のペインで適切なツールチェーンを選びます。
 今回は「LLVM with GCC(Windows)(MinGW)を示すようにクリックをしてください。
 この次に「優先ツールにする」を押下し、続けて「適用」ボタンを押下して設定を羽根井させてください。

 これでエラーは出なくなると思います。

Qeclipseでプログラムが実行できません

プログラミング初心者です。
おかしな部分があるかと思います...。すみません...。

学校で出たC言語の課題を家でもやるために、eclipseをダウンロードしました。
MinGWもダウンロードしました。
C言語でプログラムを記述し、「すべてビルド」を押してから実行ボタンを押しましたが、「バイナリが見つかりません」というエラーが出てきてしまい、まったく実行できません。
ほかのサイトを参照しても、「コンパイル用のソフトをダウンロードしてありますか?」などの回答が多かったのですが、MinGWをダウンロードしてあるので何とも言えません。
プログラムはHello World!を表示させる程度の簡単なものです。
どのように操作をしたらうまく実行できるか教えてください。

また、eclipseとマイクロソフトのVisual Studioではどちらが使いやすいでしょうか。

ご回答よろしくお願いいたします。

Aベストアンサー

MinGWのインストールとeclipseの選択に問題がないと仮定して、
eclipse で Hello World を動かす手順は次の通りです。
--------------------------------------------------------------
メニューの "File > New > C Project" をクリック。

Project name: に適当なプロジェクト名を入力して
Project Type: を "Executable" の "Hello World ANSI C Project" にして
Toolchains: を "MinGW GCC" にして
"Finish" をクリック。

"Project Explorer" ビュー内の作成したプロジェクトのところで右クリックしたあと
"Build Project" をクリック。

"Project Explorer" ビュー内の作成したプロジェクトのところで右クリックしたあと
"Run AS > Local C/C++ Application" をクリック。

"Console" ビューに
!!!Hello World!!!
と表示される。
--------------------------------------------------------------
もっとも、No.1の方が回答されているように、
最初はMinGWだけでコンパイルして実行するほうがラクでしょう。
ソースファイルが1つだけのプログラムであれば、コマンドプロンプトから
gcc ソースファイル名
と入力したあと、
a.exe
と入力するだけです。

gcc がコマンドとして認識されない場合は、Windowsの環境変数 PATH に
MinGW の bin ディレクトリが含まれていないはずなので追加してください。

MinGWのインストールとeclipseの選択に問題がないと仮定して、
eclipse で Hello World を動かす手順は次の通りです。
--------------------------------------------------------------
メニューの "File > New > C Project" をクリック。

Project name: に適当なプロジェクト名を入力して
Project Type: を "Executable" の "Hello World ANSI C Project" にして
Toolchains: を "MinGW GCC" にして
"Finish" をクリック。

"Project Explorer" ビュー内の作成したプロジェクトのところで右クリックしたあと
"...続きを読む

QLinuxのgccのインクルードパス?

Linuxのgccで、インクルードファイルやライブラリのパスを設定する方法が知りたいのですが、gccについて詳しい書籍やサイトがありましたら、教えてください。

gccとccの違いも知りたいです。

例)
#include "example.h"

このままだと、example.hが無いと表示されます。

Aベストアンサー

標準ライブラリのパスは、gccのインストール時に指定して、Cプリプロセッサの中に組み込まれます。

#include "example.h"
は、まずカレントディレクトリを探し、次に gccコマンドラインの -I オプションで指定したディレクトリを探し、最後に標準ライブラリが探されます。

#include <example.h>
は、カレントディレクトリを探さない点が異なります。

ccも基本的には同じですが、Unixの種類によって機能が異なる可能性があります。Linuxの場合はcc=gccです。

Qjavaでunsignedは使えないのですか?

Eclipseを使い始めた初心者です。
short型変数を符号無しで宣言しようと思ったのですが、
赤の下線が出てしまってエラーの扱いになってしまっています。

javaではunsignedは使えないのでしょうか?
使えないのであれば、その理由と対処策を教えていただけましたら嬉しいです。
宜しくお願い致します。

Aベストアンサー

unsigned short などのような構文はありませんが、とりあえず負の値を使いたくないのなら char型を数値のように使えばよろしいかと思います。
char型のとりうる範囲は0~65535で、範囲外の数値はint型とみなされます(数値を直接代入する場合のみ)。
ただし負のintをcharにキャストすると上位ビットが欠落します。

char c;
c = 0;
c = 65535;
c = 65536; ←コンパイルエラー
c = -1; ←コンパイルエラー
c = (char)-1; ←コンパイルエラーにはならないが65535になる

Qeclipse で JAVAもC++も開発したい

C++をやっていて、最近JAVAもプログラムするようになったのですが、
JAVAで使うeclipseが非常に便利なので、これをC++で使えないかと思っています。

http://www.eclipse.org/downloads/
を見ると、JAVAを使うためのeclipseとC++を使うためのeclipseは別々に用意されているようなのですが、二つ eclipse をインストールするとディスクがもったいない気がします。

● eclispe 一つで JAVAとC++の開発は出来ないのでしょうか?

Aベストアンサー

>JAVAを使うためのeclipseとC++を使うためのeclipseは
>別々に用意されているようなのですが
Eclipseはいろいろなプラグイン(機能追加用プログラム)
を組み合わせる事によって、機能を追加・変更する事が
できます。
Java以外の多数の言語にも対応していますし、使用可能な
ツール類も多種多様な物があります。
しかし、どれが必要かを選ぶのは各人の使用目的によって
異なります。
>http://www.eclipse.org/downloads/
では、目的に合わせて標準的に必要なプラグインを揃えた
パッケージが用意されています。
あとは、目的に応じてプラグインの追加による機能の追加
拡張が可能です。

Qファイルやディレクトリの存在確認を行う方法

ファイルをオープンするのはfopenでOKですが、ファイルやディレクトリの存在確認を行う方法が知りたいです。

何か組み合わせて作るものなのでしょうか?
perlとか便利な演算子があるのですが、C/C++って器用ではないですね。
これは処理系?依存の内容ですか?

私の環境は VC6, VC2005 Windows2000です。

Aベストアンサー

int access(const char* path, int mode);
int stat(const char* path, struct stat* sb);

かな?
MSDN を引くと _access_s() を使えとか書いてあるけど。

Qシンボルが見つかりませんというエラーが理解できません。

以下のようなじゃんけんゲームのプログラムを書いたのですが、「シンボルが見つかりません。」というエラーが表示されるのですが、エラーの意味が理解できず、解決できません。どこが間違っているのか教えていただけませんか。

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.File;

public class janken extends Applet
implements Runnable, ActionListener {
private static final int EXTERNAL_BUFFER_SIZE = 128000;

Image image[] = new Image[3];
Thread t;
int index1 = 0;
int index2 = 0;
String msg = "";
String msg1 = "";

boolean state = false;
Button b1 = new Button("ぐー");
Button b2 = new Button("ちょき");
Button b3 = new Button("ぱー");

public void init(){
for(int i = 0; i<=2; i++){
img[i] = getImage(getDocumentBase(),"hanabi" + (i+1) + ".JPG");
}
add(b1);
add(b2);
add(b3);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
msg1 = "結果は・・";

}

public void paint(Graphics g){
g.drawImage(img[index1],350,30,this);
g.drawImage(img[index2],695,30,this);
g.drawString("コンピューター",420,300);
g.drawString("あなた",800,300);
g.drawString(msg,630,320);
g.drawString(msg1,550,320);
}

public void start(){
state = true;
t = new Thread(this);
t.start();

}

public void run(){
while(state){
index1++;
if(index1 == 3){
index1 = 0;
}
index2++;
if(index2 == 3){
index2 = 0;
}
repaint();
try {
Thread.sleep(60);
}catch(InterruptedException e) { }
}
}

public void actionPerformed(ActionEvent e){
if(state == false) {
start();
return;

}
state = false;
if(e.getSource() == b1) {
msg = "ぐー";
index2 = 0;
}

else if(e.getSource() == b2){
msg = "ちょき";
index2 = 1;
}

else if(e.getSource() == b3){
msg = "ぱー";
index2 = 2;
}
check();
repaint();
}

public void check() {
if(index1 == index2) msg ="あいこ";


else if (index1 == 0) {
if(index2 == 2) msg="あなたの勝ち";
else msg ="あなたの負け";
}

else if(index1 == 1) {
if(index2 == 0) msg="あなたの勝ち";
else msg="あなたの負け";
}

else if(index1 == 2) {
if(index2 == 1) msg="あなたの勝ち";
else msg="あなたの負け";
}

}
}

以下のようなじゃんけんゲームのプログラムを書いたのですが、「シンボルが見つかりません。」というエラーが表示されるのですが、エラーの意味が理解できず、解決できません。どこが間違っているのか教えていただけませんか。

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.File;

public class janken extends Applet
implements Runnable, ActionListener {
private static final int EXTERNAL_BUFFER_SIZE = 128000;

Image image[] = new Imag...続きを読む

Aベストアンサー

「シンボルを見つけられません。」というエラーの下に何か表示がありませんでしたか?そこにヒントがあると考えられます。
シンボルを見つけられませんといエラーが表示される主な理由は4つあります。
(1)クラス、メソッド、変数などの綴りミスや定義していない変数を使用している可能性がある。
(2)コンストラクタを呼び出すときに、newを忘れている可能性がある。(3)公開されていないメンバーを呼び出している可能性がある。
(4)必要なimport文を記述し忘れている可能性がある。
ここでのあなたのエラーは(1)番ではないでしょうか?上記ではimageとなっている変数がimgになっていますね。
これはエラー表示をよく見ることで意外と簡単に解決できるのです。
ゆっくり丁寧にエラー表示を見るように心がけることが大事ですよ。

QEclipse「リフレッシュ」と「クリーン」の違い

Eclipseでプロジェクト「リフレッシュ」と「クリーン」がありますが、どう違うのでしょうか?

■質問背景
・Androidでエミュレータ内容が切り替わらないときがあるのですが、キャッシュか何か関係あるのかな、と思い質問しました

Aベストアンサー

Androidエミュレータはわかりません。
Eclipseでは、下記のことを指しています。
リフレッシュ→OSのファイルシステムと、Eclipseのワークスペースのファイル構造を同期すること。
クリーン→クリーンは、クリーンビルドのことでjavaのclassファイル等の成果物を削除し、コンパイルし直すこと。

Qmakeコマンドのエラーについて(

UNIX(Linux)系のOSやC言語には不慣れなのですが、よろしくお願いします。

普段はWindows7(Home Ed.)を利用しているのですが、
いくつかのlinux系のソフトを利用する際にcygwinも利用しています。


==========================================================
cygwinにソフトウェアをインストールしようとする際に、
ときどき遭遇するエラーなのですが

仮にsoftware.tar.gzというソースファイルからインストールしようとして、

> gunzip -c software.tar.gz | tar xvf -
> cd software
> ./configure
> make
.....
make: *** [all-recursive] error

というエラーが生じて、makeが通らない時があります。
=========================================================


これまで何度か、どういうエラーなのか調べようとする度に挫折し、
何回かやり直している内に、たまたまmakeがすんなり通って
インストールできてしまったりしていたので、
なんとなくうやむやにしていました。

そもそも、この"all-recursive"に全くピンとこないのですが、
これはどういった場合に生じるエラーを示しているのでしょうか?
recursive(再帰的な)だから、関数かなにかの呼び出しに失敗している、
とかそういうことなのでしょうか?


エラーの内容はケースバイケースだし、
漠然とした質問になって申し訳ないのですが、
ちょっとしたアドバイスでもいいので、ご回答をお願いします。

UNIX(Linux)系のOSやC言語には不慣れなのですが、よろしくお願いします。

普段はWindows7(Home Ed.)を利用しているのですが、
いくつかのlinux系のソフトを利用する際にcygwinも利用しています。


==========================================================
cygwinにソフトウェアをインストールしようとする際に、
ときどき遭遇するエラーなのですが

仮にsoftware.tar.gzというソースファイルからインストールしようとして、

> gunzip -c software.tar.gz | tar xvf -
> cd software
> ./configure
> make
...続きを読む

Aベストアンサー

お腹痛いのに、一生懸命違うところを診察しているようなものですかね。

make[2]: *** [tvsetf.o] Error 1
この行より上全部じゃないですか?
WARNINGとかも出てますしね。

仰るとおりケースバイケースではありますが、例えば自分で作ったプログラムでの話ならばプログラムのミスが考えられますが、どこかの出来合いのフリーウェアをmakeしてエラーで落ちる場合は、環境が整っていない場合があります。(○○がインストールされていないとか…)

その辺は全てconfigureやmake時に出てくるメッセージをちゃんと見ることです。

なぜ最後に出てくるall-recursiveだけに注目してるのか知りませんが、見なくてもいいものをずっと見ていても問題は解決しません。

Qinterface,extend,implementのちがい

お世話になります、

Javaを勉強しているのですが、
interface,extend,implementの使い分けがわかりません。

私の解釈としては、
(1)interfaceは、グローバル変数の定義、グローバルメソッドの定義(実装はしない)。

(2)extendは、extendクラスを親クラスとして親クラスの機能を使用できる。

(3)implementは…,implementもextendと同じような意味だと解釈しているんですが、違う点は、implementで定義してあるメソッドは、使用しなくても、実装しなければならないという点でしょうか?

とにかくこの3つのを使い分けるコツとかあれば教えてください。
よろしくお願いします。

Aベストアンサー

バラバラに理解してもしょうがないッス。

まず、
(1)interface と implements
(2)class と extends

が対応しているわけっす。

JavaはC++と違って、比較的言語仕様を「簡単」にしたので「多重継承」という
概念がないです。
多重継承っていうのは、複数のクラスを親クラスにして継承するってことですね。

たとえば、 「TextFieldクラス」と「Japaneseクラス」を多重継承すると、
「JTextFieldクラス」ができるっていうのが自然な考え方でしょう?

まぁ、例えば、日本語クラスであれば、getStringLength()メソッドなどが
あったほうが良いでしょうか。
このgetStringLength()メソッドは、2バイト文字も1バイト文字も「1文字」
と数えてくれると言う点で、まさに、日本語クラス用のメソッドだと言えるでしょう。

例えば、Java的に記述すると、、、
class Japanese {
public int getStringLength() {
  ・・・
return strlength;
 }
 ・・・
}

class TextField {
・・・
}

class JTextField extends TextField, extends Japanese {
・・・・
}

C++ではそのように実装するでしょう。
しかし、Javaにはこのような高度な機能はありません。

そこで、生まれた苦肉の策が、「interfaceとimplements」です。

interface Japanese {
public int getStringLength(); // interfaceは実装を含まない!
                 // すなわち「実装の継承」ができるわけではない。
}

class TextField {
・・・
}

class JTextField extends TextField implements Japanese {
・・・・
public int getStringLength() {
  ・・・
return strlength; //implementsの実装を「各クラスで」実装してやる必要がある。
 }
}


結局のところ、Javaでは、複数のクラスを親クラスには持ち得ないため、継承できなかったクラスは「各クラスで実装してやる必要性」があるのです。


ではどのように使うのが効果的か?

なまえのままです。「代表的なインターフェイス」にたいしてinterfaceを使うのが良いと思います。

例えば、プレイヤー系であれば、ビデオ・コンポ・ウォークマン・などにかかわらず、
interface controlpanel {
public play();
public stop();
public next();
public back();
}
というような基本的インターフェイスを「持っているべき」です。

こうすることで、それぞれのクラス宣言の際に、これらの「インターフェイスを持っているべきであり、実装されるべきである」ということを「強く暗示」することができます。
class videoplayer extends player implements controlpanel {
public play() {・・・}
public stop() {・・・}
public next() {・・・}
public back() {・・・}
}

こうすることで、同様のクラスを作成するユーザーは、
「プレイヤー系は、4つ操作が出来るコントロールパネルをインターフェイスとして持つべきなのだな!?」という暗示を受け取り、自分のクラスでもそれを模倣するでしょう。

class mp3player extends player implements controlpanel {
public play() {・・・}
public stop() {・・・}
public next() {・・・}
public back() {・・・}
}

また、これらのクラスを使用するユーザーも、「implements controlpanel」という
表記を見て、「4つの基本操作は押さえられているのだな!」という基本中の基本動作を抑えることが出来ます。

まとめると、クラスに「こういう特徴もたしてください!」「こういう特徴持ってますよ!」という一種の暗示的警告や方向性を与えることができるわけですね。

バラバラに理解してもしょうがないッス。

まず、
(1)interface と implements
(2)class と extends

が対応しているわけっす。

JavaはC++と違って、比較的言語仕様を「簡単」にしたので「多重継承」という
概念がないです。
多重継承っていうのは、複数のクラスを親クラスにして継承するってことですね。

たとえば、 「TextFieldクラス」と「Japaneseクラス」を多重継承すると、
「JTextFieldクラス」ができるっていうのが自然な考え方でしょう?

まぁ、例えば、日本語クラスであれば...続きを読む


人気Q&Aランキング