質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.39%
CMake

CMakeはクロスプラットフォームで作動するオープンソースのビルドシステムです。コマンドライン又は組み込まれた開発環境で使うことができる元のmakefileとプロジェクトファイルを生成します。

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

コンパイル

コンパイルとは、プログラミング言語のテキストソース(ソースコード)をコンピュータ上で実行可能な形式(オブジェクトコード)に変換することをいいます

Q&A

0回答

356閲覧

emccでコンパイルすると、.wasmファイルの管理者権限がないといわれ、コンパイルエラーが出る

kalon

総合スコア198

CMake

CMakeはクロスプラットフォームで作動するオープンソースのビルドシステムです。コマンドライン又は組み込まれた開発環境で使うことができる元のmakefileとプロジェクトファイルを生成します。

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

コンパイル

コンパイルとは、プログラミング言語のテキストソース(ソースコード)をコンピュータ上で実行可能な形式(オブジェクトコード)に変換することをいいます

1グッド

0クリップ

投稿2024/08/14 20:08

実現したいこと

terminal

1emcc fibonacci.c -o fibonacci.html --emrun

で、エラーを出さずにコンパイルしたい。

発生している問題・分からないこと

emccでコンパイルすると、.wasmファイルの管理者権限がないといわれ、コンパイルエラーが出る

エラーメッセージ

error

1emcc fibonacci.c -o fibonacci.html --emrun 2C:\emsdk-main\upstream\bin\llvm-objcopy.exe: error: permission denied 3emcc: error: 'C:/emsdk-main/upstream/bin\llvm-objcopy.exe fibonacci.wasm fibonacci.wasm --remove-section=.debug* --remove-section=producers' failed (returned 1)

該当のソースコード

C

1#include <stdio.h> 2#include <emscripten.h> 3 4int fibonacci(int n) { 5 if (n <= 1) { 6 return n; 7 } 8 return fibonacci(n - 1) + fibonacci(n - 2); 9} 10 11int main(void) { 12 int n; 13 printf("Enter the position of the Fibonacci number to calculate: "); 14 n = emscripten_run_script_int("prompt('Enter the position of the Fibonacci number to calculate:')"); 15 16 if (n < 0) { 17 printf("Invalid input. Please enter a positive number.\n"); 18 return 1; 19 } 20 21 int result = fibonacci(n); 22 printf("The Fibonacci number at position %d is: %d\n", n, result); 23 24 return 0; 25}

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

Googleで「emcc wasm denied」で検索しましたが、該当するページは出ませんでした。
Github CopilotとClaude3にコード修正を投げましたが、変更はありませんでした。

補足

emcc --version emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 3.1.64 (a1fe3902bf73a3802eae0357d273d0e37ea79898) Copyright (C) 2014 the Emscripten authors (see AUTHORS.txt) This is free and open source software under the MIT license. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

CMAKE verion3.30.2

Windows11 Pro

tatsu99👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kalon

2024/08/15 00:49

このエラー発生後にfibonacci.htmlは出力されません。
kalon

2024/08/15 01:47

@dameo サイト通りにインストールを行ったはずです。何が違っているのかご指摘いただけますか? ```emcc input_from_user.c -o input_from_user.html```ではコンパイルが通っています。 ```c #include <stdio.h> #include <emscripten.h> int main() { int num1, num2; printf("Enter the first number: "); num1 = emscripten_run_script_int("prompt('Enter the first number:')"); printf("Enter the second number: "); num2 = emscripten_run_script_int("prompt('Enter the second number:')"); int sum = num1 + num2; int diff = num1 - num2; int prod = num1 * num2; printf("The sum of the two numbers is: %d\n", sum); printf("The difference of the two numbers is: %d\n", diff); printf("The product of the two numbers is: %d\n", prod); return 0; } ```
退会済みユーザー

退会済みユーザー

2024/08/15 01:55

emcc input_from_user.c だけで十分ですよね? wasmを作る以外、何がしたいのでしょう? 目的はなんですか?
kalon

2024/08/15 01:58

Webassembly自体入門したてなので、正しい考えかわかりませんが、私は.htmlを出力して、プログラムの動作を確認したいのです。
退会済みユーザー

退会済みユーザー

2024/08/23 10:56 編集

●●●●AIにでも聞けば解決すると思いますが、普通に-oで.htmlを生成してもwebサーバーに配備すればそのまま稼働しますよ。●●●●
kalon

2024/08/15 02:08

htmlファイルを -oオプションで出力するように指示していますが、そのhtmlファイルが生成されなくて困っているのです。よって、Webサーバーに配備することすらできません。 私の現状は emcc input_from_user.c -o input_from_user.html ではhtmlの生成に成功しますが、 emcc fibonacci.c -o fibonacci.html --emrun ではhtmlの生成に失敗しているのです。
退会済みユーザー

退会済みユーザー

2024/08/15 02:15

emcc input_from_user.c -o input_from_user.html では何がまずいのですか?
kalon

2024/08/15 02:18

emcc input_from_user.c -o input_from_user.htmlは問題なくhtmlが出力されているので、私の要求通りです。こちらは問題ありません。 しかし、emcc fibonacci.c -o fibonacci.html --emrunではhtmlの生成に失敗しているので、私の要求通りではありません。fibonacci.htmlが出力されず、開くこともできないのでfibonacci.cのwebasemmblyでの動作がhtmlで確認できないので困っています。
退会済みユーザー

退会済みユーザー

2024/08/15 02:20

だからemrunでないと困る理由は何ですか?
kalon

2024/08/15 02:23

fibonacci.htmlが出力されないので、emrun fibonacci.htmlができません。
kalon

2024/08/15 02:24

emrun以外にプログラムの動作確認をできる方法はあるのですか?
退会済みユーザー

退会済みユーザー

2024/08/15 02:27

紹介したページに書いてありますよね? nodeでもインストールするのが手っ取り早いです。 pythonでも簡単にできるし、emrunだって普通に動きます。 インストールすらまともにできないからって何かのせいにしてはいけません。
退会済みユーザー

退会済みユーザー

2024/08/23 10:49 編集

公式ページですよ。。。●●●●
kalon

2024/08/15 02:37

先ほどはチュートリアルのページを紹介くださっただけですよね? https://emscripten.org/docs/getting_started/downloads.html こちらの通りにインストールしているのですが、何をもって私のインストールが間違っているとご指摘くださっているのでしょうか?
退会済みユーザー

退会済みユーザー

2024/08/15 02:40

公式のチュートリアルページ(一番始めに読む一番簡単なページ)になります
kalon

2024/08/15 02:42

メッセージの行き違いかもしれませんが、チュートリアルの話ではなく、dameo様は先ほどからインストールが間違っているというご指摘ではありませんでしたか?
退会済みユーザー

退会済みユーザー

2024/08/23 10:50 編集

そうですね。私の環境では動いているし、そんなテストくらいしてると思うので。そして私が言ってるのは主に代替手段です。●●●●
kalon

2024/08/15 02:49

私のコードで、emcc fibonacci.c -o fibonacci.html --emrunがdameo様の環境では動いているということで間違いないですか?
退会済みユーザー

退会済みユーザー

2024/08/15 02:52

あなたが公式インストール手順どおりにインストールしているのは間違いないですか?
kalon

2024/08/15 02:53

それ以外にインストール方法ってありますか?
退会済みユーザー

退会済みユーザー

2024/08/23 10:51 編集

●●●●
kalon

2024/08/15 03:01

インストール方法が1つに限られていて、不手際など発生しますか? 更にemcc input_from_user.c -o input_from_user.htmlではコンパイルが通っているのにインストールの失敗を疑うのはいかがなものでしょうか?ほかの条件が通らないのですから、他の要因を疑ってしかるべきではないでしょうか?
退会済みユーザー

退会済みユーザー

2024/08/23 10:51 編集

公式のとおりにやって誰かが失敗したなら文句も出て簡単なものならすぐ修正されます。●●●●
kalon

2024/08/15 03:08

ではお言葉ですが、 emcc input_from_user.c -o input_from_user.html のコンパイルが問題なく通っていることはどう説明されるのですか?
退会済みユーザー

退会済みユーザー

2024/08/23 10:52 編集

公式のとおりにやって誰かが失敗したなら文句も出て簡単なものならすぐ修正されます。●●●●不手際の方法などいくらでもあるので、エラーそのものならcaclsコマンド一発で起こせるでしょう。
kalon

2024/08/23 10:55 編集

●●●● ●●●●
退会済みユーザー

退会済みユーザー

2024/08/15 03:14

公式のとおりにやって誰かが失敗したなら文句も出て簡単なものならすぐ修正されます。
kalon

2024/08/15 03:17

OSSだからと言って必ずしも >公式のとおりにやって誰かが失敗したなら文句も出て簡単なものならすぐ修正されます とは一概に言えないのではないでしょうか? https://github.com/emscripten-core/emscripten/issues/22382 一応、私の方で問題が発生した手前、issueは投げてありますが。
退会済みユーザー

退会済みユーザー

2024/08/15 03:20

ようはissueを選んで質問したってことなんですね 自分で検証しましたか?
kalon

2024/08/15 03:21

検証せずに質問したり、issueを投げたり普通しますか?
退会済みユーザー

退会済みユーザー

2024/08/15 03:24

ん?issueを投げた本人だと言っていますか? 開発元にissueを投げておいてここにマルチポストする人はいないと思いますが…無駄ですよね?
kalon

2024/08/23 10:54 編集

●●●●
退会済みユーザー

退会済みユーザー

2024/08/23 10:52 編集

●●●●
退会済みユーザー

退会済みユーザー

2024/08/23 10:53 編集

●●●●過去にこういうissueがありました。 https://github.com/emscripten-core/emscripten/issues/17452 コメント書き込む前に調べてはいたのですが、この件はpythonか何かのスクリプトで削除しないファイルが原因で「上書き」インストールが失敗するという話のようでした。closeはしています。 この流れで止まると誰かが気を使って出すような気がするので念の為。
kalon

2024/08/23 10:54 編集

●●●●
退会済みユーザー

退会済みユーザー

2024/08/23 10:53 編集

●●●●
退会済みユーザー

退会済みユーザー

2024/08/20 12:23 編集

以下のissueは「再現せず」でcloseされています。 https://github.com/emscripten-core/emscripten/issues/22382 ますます嘘っぽいですね。嘘だとしたらただでさえ忙しいOSS開発者に、受けた多大な恩を何の理由もなくひどい仇で返すようなことをしてることになります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.39%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問