Langues: English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Français | Deutsch | Español | Italiano | Русский | العربية
Guide pour compiler NeverC à partir des sources et configurer un environnement de développement local.
- CMake 3.20+
- Ninja
- Un compilateur C++17 hôte (GCC, Clang ou MSVC)
cmake -S llvm -B build-neverc -G Ninja -C neverc/cmake/caches/NeverC.cmake
cmake --build build-neverc --target nevercccache / sccache est automatiquement détecté et activé s'il est présent.
--target neverc est la compilation quotidienne stage-1 (runtimes embarqués
vides). Cela suffit pour la plupart du travail local. Pour embarquer les runtimes
string / mimalloc / std / NVK dans le binaire (ou obtenir un compilateur proche
de la CI), lancez la cible parapluie stage-2 :
cmake --build build-neverc --target neverc-embed-runtime-bitcodeLe bootstrap en deux étapes est détaillé dans Builtins.
cmake -S llvm -B build-neverc -G Ninja -C neverc/cmake/caches/NeverC.cmake -DNEVERC_INCLUDE_TESTS=ON
cmake --build build-neverc --target check-neverccheck-neverc dépend de neverc-embed-runtime-bitcode : le premier lancement
des tests bootstrappe et relie le compilateur automatiquement. Pas besoin
d'appeler la cible embed à la main.
Après la compilation, le binaire neverc se trouve dans build-neverc/bin/neverc. Utilisez le script utilitaire pour l'ajouter à votre PATH sans avoir à saisir le chemin complet :
source ./utils/build/neverc-env.shVous pouvez maintenant exécuter neverc directement :
neverc --version
neverc -c hello.c -o hello.oPour retirer la compilation locale du PATH dans la session shell en cours :
source ./utils/build/neverc-env.sh --remove # ou -rÉcrire automatiquement la ligne source dans le fichier rc du shell (~/.zshrc, ~/.bashrc ou ~/.profile) :
source ./utils/build/neverc-env.sh --installAnnuler :
source ./utils/build/neverc-env.sh --uninstallSi vous avez à la fois une installation release (par défaut : ~/.neverc) et une compilation dans l’arborescence source, utilisez neverc-env.sh pour changer le neverc actif dans le shell courant sans écraser l’une ou l’autre installation :
source ./utils/build/neverc-env.sh # dev local (build-neverc/bin)
source ./utils/build/neverc-env.sh --local # idem
source ./utils/build/neverc-env.sh --release # release (~/.neverc/bin)
source ./utils/build/neverc-env.sh --status # afficher le neverc actif
source ./utils/build/neverc-env.sh --remove # retirer les deux du PATHLe basculement définit NEVERC_ENV sur local ou release :
echo "$NEVERC_ENV"
neverc --version
which nevercSi la release est installée dans un autre préfixe, indiquez le même répertoire que install.sh :
NEVERC_INSTALL_DIR=$HOME/.neverc-v3389.1.2 source ./utils/build/neverc-env.sh --releaseOptionnel — alias dans la configuration du shell (remplacez par le chemin absolu de votre dépôt) :
alias neverc-dev='source /path/to/NeverC/utils/build/neverc-env.sh --local'
alias neverc-rel='source /path/to/NeverC/utils/build/neverc-env.sh --release'Sous Windows, utilisez le script .bat (aucun privilège administrateur requis) :
utils\build\neverc-env.bat &REM ajouter au PATH (session courante)
utils\build\neverc-env.bat --remove &REM supprimer du PATH (session courante)
utils\build\neverc-env.bat --global &REM persister dans le PATH utilisateur via setx
utils\build\neverc-env.bat --global -r &REM supprimer du PATH utilisateur via setxContrairement au script Unix, pas besoin de source — le .bat modifie directement la session cmd en cours. --global écrit dans le registre utilisateur via setx (aucun privilège administrateur requis).
Le package est signé avec un certificat Apple Developer ID et notarisé par Apple. Extrayez l'archive et utilisez directement.
NeverC intègre les SDK de chaque plateforme dans runtime/ (Windows SDK/WDK, sysroot Linux, sysroot macOS, Android NDK) ; aucune configuration externe n'est nécessaire.
neverc --target=x86_64-pc-windows-msvc \
-fbuiltin-string -o hello.exe hello.c -lkernel32Pour le dyncode Windows (-fdyncode, résolution d'imports PEB, etc.), voir la documentation du compilateur dyncode.
neverc --version
echo 'int main(void) { return 0; }' > /tmp/hello.c
neverc -c /tmp/hello.c -o /tmp/hello.o