GNU/Linux >> Znalost Linux >  >> Linux

Jak spustit program C++ v jiném programu C++?

Budete si muset napsat svůj vlastní kompilátor.

Zvažte:Žádný normální operační systém nepodporuje to, co chcete. Chcete, aby oba spustitelné soubory běžely uvnitř jednoho procesu, ale tento proces může nebo nemusí volat OS v závislosti na nějaké podivnosti uvnitř procesu, které OS vůbec nerozumí.

To již není problém s vaším vlastním kompilátorem, protože jednoduše nevytvoří problematické pokyny. Je to podobné jako Java a .Net, které také zabraňují takovým voláním OS mimo jejich kontrolu.


Přenosné řešení:Google Native Client

Jedno z možných řešení pro Linux:

  1. Vytvořte profil AppArmor s "klobouky" ("klobouk" je konfigurace izolovaného prostoru, na kterou se aplikace může programově přepnout pomocí libapparmor),
  2. nechte hlavní aplikaci vytvořit „rouru“,
  3. mají hlavní aplikaci "fork",
  4. změnit se v „klobouk“ odpovídající dětské aplikaci,
  5. "vykonat" podřízenou aplikaci,
  6. hlavní aplikace a podřízená aplikace komunikují prostřednictvím dříve vytvořeného „potrubí“.

Linux
  1. Jak spustit příkaz uvnitř spuštěného kontejneru Systemd?

  2. Jak spustit Chromium uvnitř Chrootu?

  3. Jak napsat a spustit svůj první Qt program v Debianu 10

  1. Jak zkompilovat a spustit program C v Ubuntu

  2. Jak spustit konkrétní program jako root bez výzvy k zadání hesla?

  3. Jak poslat signál ke spuštění programu v kontejneru dockeru?

  1. Jak spustit program uvnitř kontejneru Docker?

  2. Jak spustit soubor sh z jiného souboru sh

  3. Jak spustit úlohu cron uvnitř kontejneru dockeru