C・C++・C#

全26352件中201~220件表示
  • make実行時のエラーについて

    makeについてお尋ねします(先日、お尋ねした件の延長なのですが)。 あるプログラムソース群からの実行ファイルの作成に関する質問です。 以下操作手順です。 ------------ 1. configure.sh というのが用意されていて、中を見てみたら私の計算機のコンパイラの状況などを調べたりして、make.incを出力しています。それは所定の場所に置かれます。これをマニュアルどおり実行しました。 2. その場所(ソース群とかmakefile,make.incがあるフォルダ)でmakeを実行しました。makeはmakefile, make.incを読み込んでいます。make.incがmakefileから呼ばれている記述も確認しました。 makeを実行すると、makefileの以下の部分がおかしいとしてmakeが終了します。 c.o: $(CC) -c $(CFLAGS) $(INCS) $*.c メッセージとして、 cc -c -I hoge.c cc: fetal error: no input files ----------- $(CC),$(CFLAGS),$(INCS) というのはcc, スペース, -I を意味するようですが、これはどこで指定されるのでしょうか。 make.incの中にはそのようなものを指定するところはありませんでした。Fortranコンパイラは調べて調整されていることが分かり、"FC= gfortran -O3" というような記述が見えます。configure.shを使って調査したことが分かります。 また、cc -c -I abc.c は、-Iでインクルードファイルのフルパスを指定なのでしょうか。man ccによるとそういう風です。 $(INCS)を削除すればいいのかもですが、一応、セットとして導入されているものなので、どこで副作用が出るかわからないのでそのままにしているのですが。理屈が分からないので、自発的に編集することをためらっています。 make全般ですが、どういう分野に属するのでしょうか。C言語の1分野でもなく、必ずしもLinuxの習得の中に組み込まれているわけでもないように見えます。学習するシステムとしてどこに属するのかということですが。その場その場でアドホックに調べて習得していくものなのでしょうか。 if......fiというようにフィーリングではわかるのですが、しっかり説明されるような学習の場面がないのですが。

  • makefileでのファイル指定について

    プログラムを実行するためのコンパイルでは、makeを使うことが多いと思います。makefileというファイルにその内容を書いておくわけですが、makeというのは必要なものをかき集めて(不必要なものは集めない)セットしていくということなるわけですね。ファイルを集めるというのは結局はフォルダを指定するということなのですが、そのフォルダとは相対パスで指定するのか、絶対パスで指定するのか考え方を教えて頂きたいのですが。私の予想では当然ながら相対パスが普通だということなのですが。また絶対パスでもいいということにもなるでしょうか。./とかつけてフォルダ指定すると相対パスになるとか。makeは苦手でそこを確認したいと思いました。 あと、必ずではありませんが./configureとかしますが、これは何をしているのでしょうか。 よろしくお願いします。OSとしてはWindows, WSLというところでの利用を考えています。

  • 開発環境の整備に関する質問

    情報科学が多くの関心を集めているので、開発環境をフリーで提供するような大手のサイトが多くあるように思います。 大雑把にはコンパイラの提供ということで、今時は開発環境としてVScodeを使って編集して実行して...というようなことが行われていると思います。intelのサイトを見ると昔とだいぶ違っていてフリーで提供するページがすぐに出てきます。実際、どんな感じなのでしょうか。使えるものがどんどん提供されていてありがたい限りということなんでしょうか。私は今でもGNUのコンパイラを使っていますが、intelの提供するものってどんな感じなのでしょうか。ざっくりとした使用感とかでもいいのですが。そのあたりの事情が知りたいと思いました。 ※以前、intelのフリー版を使ったことがあり、インストール法とかメモっていて、ライセンスファイルがどうの..とかいろいろありました。 ※PythonもGoogleが提供しているし、AIだったらSonyも提供してます。使えるものは何でも提供してとがったプロダクトを作れる人を探しているのかなって思うのですが。 以上、この業界の動向について何か教えて頂きたいと思いました。

  • C++について

    倍率を求めたいのですが,メルセンヌツイスターを使って入力した変数にたいして1.5~3.0倍の値を表示したいのですがうまくいきません。入力した変数の値が仮に200だとして、倍率の1.6が出た場合160になるのですが私のは違う数値がでてきます。倍率の計算を知りたいです。ご助力お願いします

  • C言語。ポインタを加算するとき。

    #include <stdio.h> int main(void){ int arr[3] = {0,1,2}; int i = 1; printf("%p\n",arr); printf("%p\n",arr + i); } これで、配列のポイントがint型大きさ分ずれることは理解できており、なんの疑問もなく生きてきたのですが。 int型が4バイトだった場合。 なぜ、iが4と変換されるのですか? iは1でしかないと思うのですが。 最初は、sizeof(i)として計算されているのかと思ったのですが、iが2であったら、8と変換されていることになるので、これは違い。 iを(int*)iと暗黙の型変換されているのかと思ったのですが。 (int*)iを出力しても1でした。

  • c++について

    色が [青] [赤] [赤] [白] [白] [青]が繰り返しに並んでいるとき左から100番目の時の色を求めたいのですがよく分かりません。今はこんな感じで考えてます。配列の中身を何回も数えるというやり方が分かりません!!どなたか教えていただけますでしょうか。 vector<string>s{青赤赤白白青}; int cnt=0; for(auto it=s.begin();it!=s.end();it++,cnt) { if(cnt==100)//100番目ならその色を抜き出す { cout<<*it<<endl; } }

  • アルディーノのプログラムについて

    アルディーノマイコンでステッピングモーターを回して、ある動作をさせたいのですが、上手く行きません。 動作としては、トグルSWがONでモーターが回り出し、センサーが、ONになると、そこから、1.5秒回って、停止すると言う動作です。 現在のプログラムは uint32_t time=1501; byte dir=2; byte pul=3; byte tgl_sw=6; byte sensor=7; word wait_us=2500;//2500us*2*200→フルステップで約1RPS void setup() { pinMode(dir,OUTPUT); pinMode(pul,OUTPUT); digitalWrite(dir,HIGH); pinMode(tgl_sw,INPUT_PULLUP);//※LOWでON pinMode(sensor,INPUT);//※ } } void loop() { if(digitalRead(tgl_sw)==LOW) digitalWrite(pul,HIGH); delayMicroseconds(wait_us); digitalWrite(pul,LOW); delayMicroseconds(wait_us); if(digitalRead(sensor)==HIGH)time=millis(); digitalWrite(pul,millis()-time<=1500); } です。モーターは動くので、ドライバ、モーターの説明は省略します。

  • C言語/プログラミング

    整数を2つ入力して、2つの整数が割り切れるかどうか判定する。0除算の場合はメッセージ出すプログラミングを教えてください。

  • プログラム

    昔、phpをちょろっとやってました。 c言語で関数名は何でもいいのですが、何故以下のように分ける必要があるのですか? また、2で示しているように関数と関数の間で出力とか大事な処理をすることってありますか? int main() {} print()←2 int sub() {}

  • アルディーノのプログラムについて

    アルディーノで現在、スイッチを押すとLEDが点灯し、センサーが、5回反応をするとLEDが消えると言うプログラムを作りました。 このプログラムにセンサーが10秒間一度も反応しなかったら、LEDが消灯すると言うプログラムを追加したいです。ご教授お願いします。 現在のプログラム #define sensor_ON 1 byte sw=2; byte sensor=3; byte led=13; byte val,last_val=!sensor_ON,num; void setup(){ pinMode(sw,INPUT_PULLUP); pinMode(led,OUTPUT); } void loop(){ if(digitalRead(sw)==LOW)digitalWrite(led,HIGH);//スイッチを押したらLED点灯 if(digitalRead(led)==HIGH){//計測状態なら val=digitalRead(sensor); if(val!=sensor_ON && last_val==sensor_ON){//通過(前回検知&今回非検知)なら num++; if(num==5){//5回通過したら digitalWrite(led,LOW);//LEDを消す num=0;//リセット } } last_val=val; } delay(20); }

  • 書籍について。

    https://book.impress.co.jp/books/1111101149 の所で、期間限定全文公開プログラムは終了しました。とはどういう事でしょうか?教えていただけると幸いです。すみません。

  • ほぼ同じプログラムで結果が違う問題

    プログラムAとBが以下のようになっています。 プログラムA ------------- do n=1,100000 write(*,*) n コード 300行ぐらい enddo プログラムB -------------- do n=1,100000 if(mod(n,100).eq.1) write(*,*) n 同じソースコード enddo 両者の違いはループカウンタの画面表示頻度です。Aは毎回、Bは100回に1回印刷します。それだけですね。 ところが、プログラムAは淡々と走っていきますが、BはNaNなどを生じてしまい結果が違います。このような問題の原因は何でしょうか。出力頻度なので内容とは関係ないはずだと思うのですが。 実はコンパイラを変えたらBの問題が消えました。NaNの出力がなくなり大体想定した値が出てきています。2つのコンパイラはともにgfortranですが、何か仕様が違うということがあるでしょうか。 プログラムとしてはせいぜい10万点ぐらいの2次元配列を何度も繰り返し計算するということで、今のPCの演算速度では大したことはありません。 大昔、パソコンFortranは計算の規模(配列の規模と反復計算の回数など)に応じてコンパイラオプションを付けたり、コンパイラ自体が別物であったりしていました。そういう問題があるのかなと思うのですが。もし、何か心当たりがありましたらよろしくお願いします。

  • C# ビットマップの描画を高速にしたい

    C# ビットマップの描画を高速にしたいです。 ピクチャーコントロールでは限界でして、DirectXやDirectShow、OpenGLなど他のライブラリを用いて簡単に実装したいのです。 何かおすすめのライブラリがありましたらお教え頂けないでしょうか?サンプルなどが多いものですと・・非常に助かります。

  • コンパイルについて。

    Web上で、C言語をコンパイルして実行結果が出てくる無料のサイトを知らないでしょうか?教えていただけると幸いです。すみません。

  • リンクについて。

    リンクの意味は呼び出しで概ね合っていると先生が言っていたのですが、違うよっていう人もいるのでしょうか?教えていただけると幸いです。すみません。

  • C言語について。

    C言語プログラマとしては、スタートアップコードは・・・ ・自分が書いたプログラムを、直接動かすために必要なライブラリ ・それはコンパイル後、リンカによって追加されるライブラリこれは、 どういう意味でしょうか?分かりやすく教えていただけると幸いです。すみません。で、 以下のかぶくんまんさんの回答です。 https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11247611941 で、 C言語におけるプログラミングとは「main関数を書くこと」に他ならない。なぜ「main関数を書く」ことがC言語におけるプログラミングに他ならないのかと言えば、それは偏に「C言語のコンパイラはmain関数を呼び出すプログラムを生成するから」です。それがmain関数を求めるので結果的にmain関数がリンクされ、そしてmain関数が求めるままに他の関数もリンクされていくわけです。 で、その「main関数を呼び出すプログラム」こそが、C言語における「スタートアップコード」。 という回答で、main関数以降は、プログラマが書くのですよね?プログラマが関数をリンクさせる様なプログラムを書くということでしょうか?教えていただけると幸いです。すみません。 という所が分かりません。教えていただけると幸いです。すみません。以下のURL https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12247932542

  • C言語/C++

    画像を表示できるプログラミングを教えて下さい。現在、まだprintfしか入力していません... ※添付してる画像はイメージです。

  • Unity 1

    Unityでゲーム作っているのですが、エラー出て見ても、エラーの内容が表示しなくて、対処法が分かりません。助けてください...

  • モジュールとなったライブラリ集の利用法

    以下、長文ですみません。 サブルーチンとか関数に関するプログラム集というものがあり、自分でメインを適当に作ってそれらを呼び出して使うというライブラリ集のようなものがあります。昔からあるもので各言語に応じた本なども多数出版されています。 Fortranなのですが、F77の頃は以下のパターンが1つのファイルで延々と1万行ぐらい続くものです。ファイル名:A.f ---------------- 以下の形式のサブルーチン群の羅列 subroutine abc() いろいろ return end ---------------- このようなものは、例えば、 gfortran -c A.f としてリンクなしでコンパイルし、オブジェクトA.oが出力され、 メインプログラム(B.f)から呼び出す場合、 gfortran B.f -o A.o とすると、実行形式が出力されます(ここまで前置きが長くてすみません)。 さて、Fortran95だと状況が一変します。 A.f95だと以下のように変更されています(A.fの後継としてのA.f95)。 ------------- module A interface.... public... private... そしてサブルーチン群 subroutine abc() いろいろ return end subroutine abc end module A ------------ これを gfortran -c A.f95 とリンクなしでコンパイルすると、A.mod, A.oという2つのファイルが出力されます。 その後、メイン(B.f95)の作成ですが、モジュールA.modを読み込むため、 USE A を先頭にし,中身をF95のフォーマットにしています。その後、 gfortran B.f95 -o A.o あるいは gfortran B.f95 とするのですが、B.f95からcallしているA.f95の中のサブルーチンが発見できないというエラーになります。これら(A.f95, B.f95, A.o, A.mod)はすべて同一フォルダ内部のファイルです。 ここで万事休すなのですが、何かFortran95の処理で間違っているところがあるでしょうか。私がFortran95の処方を間違っているからではないかと思いますが、対処方法についてもしご存じでしたら、よろしくお願いします。 ※カテゴリ違いかもですが、ここしか聞く当てがないと思っています。

  • C言語/プログラミング

    秒を%d時間%d分%d秒に変換するプログラミングを教えてください。計算でちょっと積んでます... [現在のプログラミング] #include <stdio.h> void Time(int s) { int ans1, ans2; printf("秒を入力してください\n"); scanf_s("%d", &s); ans1 = s / 3600; ans2 = s / 60; printf("[計算結果]%d秒 = %d時間%d分%d秒\n", s, ans1, ans2); return 0; } int main(int s) { Time(0); return 0; }