私の目標は、メインの関数や他のクラスやそのようなもののような、独自のコードの重要な部分を節約できるコードを書くことです。 私はクラス内でそれらをコピーします私のプログラムでは、ユーザ入力を使っていくつかのコード(func、obj、class、...)を追加/削除したいと思っていますが、そのコードを再生成して、私はそれをコンパイルして削除する必要があります。
だから私は上記のすべてを計画し、私はそれがコードをコンパイルしたい部分を除いて、とにかく私のコードにg ++をリンクするにはありませんか?しかし、私はg ++に主な機能があることを知っています。 は+私は、既存のシステム上のコンパイラを使用カントと私はあなたがリンクコンパイラを使用してコードにする必要はありません別の実行ファイルとしてコンパイラ...g ++自体を自分のプロジェクトにリンクするには?
答えて
を持って傾けます。 パッケージコンパイラで実行可能です。あなたのコードはC++ソースコードを生成してから、コンパイラを呼び出して新しい実行ファイルを生成することができます。
ほとんどのコンパイラはサイズが巨大であることに注意してください。あなたのシステムにG ++またはMinGWをインストールして理解を深めてください。
詳細については、インターネットで「Compiler Design Theory」を検索してください。これは、C++などの言語を実行可能ファイルに変換する方法についての情報を提供します。
また、オペレーティングシステムに新しい実行可能ファイルを起動させる(そして現在のインスタンスを強制終了する)必要があります。これは、オペレーティングシステムのAPIのいくつかの研究を必要とします。
IMHOの場合、最も良い方法は、解釈またはスクリプト言語を使用することです。別の方法は、C++プログラムにスクリプトまたはスクリプトの一部を実行させることです。
編集1:非常に最低のレベルで非常に低いレベル
、マイクロコード発生する必要がある(プロセッサプロセスは、コマンドバイト)。
手順は次のようになります。
- メモリ にいくつかの既知の場所にあるマイクロコードと場所を生成します(あなたがアクセス権を持っているし、実行権限を持っていること)。
- マイクロコードへの実行を転送し、戻り値 をスタックにプッシュすることを覚えておいてください。
ハードコードは、特に、すべての分岐命令のターゲットアドレスを調整します(ポジション独立コードと呼ばれるものを使用しない限り)。
マイクロコードを生成するコードを書くのに何ヶ月も何年も費やすことができ、(CLangやG ++のような)コンパイラの使い方を理解することができます。
これはかなりですが、ユーザーが初めて自分のコードを実行していて、ユーザーが持っている権限があると思っています。もし彼がrootであれば、私はCPU上でipレジスタを変更して、私はいくつかのアセンブリをコード化して、生成部分を除いてすべて処理できるいくつかの長いjmpsを使用する必要があります:( – shervin
"マイクロコード"の代わりに "マシンコード"を意味すると思います。通常はアクセス可能です。 –
- 1. NoClassDefFoundError:自分のjarをAndroidプロジェクトにリンクする際の問題
- 2. 私は自分自身のデザインウェブサイトをwhmcsにリンクする方法
- 3. 自分自身をDSXプロジェクトから削除するには?
- 4. 自分のglibcにリンクする
- 5. gccで自分のライブラリにリンクするには?
- 6. HTMLは<a>リンクIPアドレスに自分自身を変換
- 7. モバイルウェブサイトを自分のPCバージョンのWebサイトにリンクするには
- 8. 自分のプロジェクトにあるフォームを別のプロジェクトに追加
- 9. 自分のプロジェクトをpublic Mavenリポジトリに追加するには?
- 10. org.apache.tikaソースを自分のプロジェクトに統合するには?
- 11. 自分の.cssと.jsをWordPressにリンクさせるには?
- 12. Android:自分の静的ライブラリを正しくリンクするには?
- 13. 自分の小さなプロジェクト用にデフォルトプリンタ
- 14. C#で自分のLINQ構造体を定義するには?
- 15. g ++でコンパイルするg ++でコンパイルを自動的に実行する.cppファイルを自動的に追加する
- 16. boost :: regexで自分のプロジェクトをコンパイルして静的にリンクしました
- 17. 自分自身にリンクする画像を設定してカラーボックスで開く
- 18. 私のアプリケーションを自分のページ(ファンページ)にリンクする方法
- 19. UserChangeFormに自分自身の 'clean_is_staff'を提供するには?
- 20. Laravelは自分のプロジェクトにパッケージを使用します
- 21. karaf:自分のコードをjarファイルにリンクする
- 22. 自分のニュースフィードを自分のアプリケーションに追加する
- 23. 自分の構造体のためにPartialEqをVectorに実装するには?
- 24. 自分のcssを自分のejsファイルにリンクできないのはなぜですか?
- 25. 自分のシステムに自分のSMTPサーバーを設定するには?
- 26. 自分のプロジェクトに独自のwebrtcサーバーを実装するにはどうすればいいですか?
- 27. プログラム自体を停止するには?
- 28. サービス自体を停止するには?
- 29. ApplicationContext自体を挿入するには
- 30. 自分自身の静的ライブラリをリンクできません
実行可能ファイルを他の実行可能ファイルにリンクすることはできません.g ++は単なる実行可能ファイルだけではありません(作業には大量のファイルが必要です)。これを行う最善の方法は、GCCの外部コピーを使用してロード可能な動的オブジェクトを作成するか、LLVMを使用してコードを生成することです。 –
私はそのg ++はexeですが、私たちはプリコンパイルされたバイナリを使用することはできません....そして、私はちょうど私が外部のものを使用することはできません... plsはtxtを読んで... llvmは何ですか? – shervin
私はグーグルLLVMのグーグルが良い選択のように思えるが、私は自分のコンパイラをllvmライブラリを使って書かなければならないだろうか? – shervin