2016-04-07 19 views
0

this solution'dan sonra, lexer.mll#include "...frontend/tokens.mll" kullanın, sonra tam mll dosyasını oluşturmak için cpp -P frontend/lexer.mll -o frontend/gen/lexer.mll kullanın. Bu çözüm Ubuntu altında daha önce çalıştı."Clang: error: giriş dosyaları yok" OS X

Şimdi bunu Mac OS 10.11.1 içinde yapmaya çalışıyorum, clang: error: no input files numaralı hata veriyor. Ben XCode veya PCH dosyası kullandığınız yere

gcc -v döner

Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 
Apple LLVM version 7.3.0 (clang-703.0.29) 
Target: x86_64-apple-darwin15.0.0 
Thread model: posix 
InstalledDir: /Library/Developer/CommandLineTools/usr/bin 

görmüyorum. Çevreyi cpp çalışması için nasıl yapılandırmam gerektiğini bilen var mı?

Düzenleme 1:

cpp --version döner

Apple LLVM version 7.3.0 (clang-703.0.29) 
Target: x86_64-apple-darwin15.0.0 
Thread model: posix 
InstalledDir: /Library/Developer/CommandLineTools/usr/bin 

Ve yorumun bir örnek:

enter image description here

+0

Lütfen "cpp --version" işlevini çalıştırın ve ayrıca "cpp" nin çıkışının çıkışını göstermek için "-v" işaretiyle çıkışını gösterin. Lütfen ayrıca '.mll' dosyanızın içeriğini de gösteriniz. – jtbandes

+0

Bize çalışacak kadar bilgi vermediniz. Çalıştığınız komutu tam olarak göstermeniz gerekir çünkü gösterdiğiniz "cpp" komutu program adı olarak "clang" ile mesaj üretmez (en azından, denediğimde belli değil) - Apple LLVM sürüm 7.3.0 (clang-703.0.29) Hedef: x86_64-apple-darwin15.4.0' biraz daha yeni, ancak bir değişiklik olmasını beklemiyorum). En az malzeme (her dosya için bir veya iki satır yeterli olabilir) ve kullandığınız 'makefile' kurallarını ve çıktıyı tam olarak 'make' yapmalısınız. –

+0

Ayrıca, bunun Xcode veya PCH dosyaları ile ne ilgisi var? – jtbandes

cevap

2

, çalıştırmak istediğiniz Bir dosyadaki c önişlemcisi, başka bir dosyada depolanacak olan metin çıktısını üretir. Nedenini bilmiyorum ama, işte burada başaracak bir komut var:

clang -x c frontend/lexer.mll -E -P -o frontend/gen/lexer.mll 

Bu, clang'ı çağırır; dili C olarak ayarlar (-x c); dosyanızı verir; sadece ön işlemeyi sorar, derleme veya bağlantı (-E); çıktıda hiçbir satır bilgisi yok (-P), öntan/gen/lexer.mll içinde depolar.

Xcode, clang çalıştıran bir IDE'dir. Eğer ocaml içinde çalışıyorsanız, ocaml dosyalarıyla ne yapacağını bilemeyeceği için Xcode'u kullanmanız faydalı olmayabilir.

+0

Bu benim için çalışıyor ... teşekkürler ... – SoftTimur

-1

1 - Açık XCode

2 -

4 OSX

sekme seçmek - - Yeni bir XCode proje

3 oluştur seçim Uygulama

5 - Komut Satırı aracını

6 seçin - Bir sonraki pencerede ürünü girmek zorunda vb

7 isim - bir dil olarak ve seçim C++

+0

Bu adımları uygulayabilir ve oluşturabilirim Bir ürün, o zaman nasıl yapmak için kullanabilirim, örneğin, 'cpp -P xxx -o yyy' çalışır? – SoftTimur

+0

ürün ismi olarak aşağıdaki ürünleri seçmelisiniz: project.cpp – scbas

-1

'cpp -P xxx -o yyy' siz olmak gerek -> 'echo "blahblahblah.cpp"> xxx' bu bir benim için çalışıyor olarak

1

Bu clang gelen bir hata olabilir:

$ cpp -P xxx yyy 
$ cat yyy 
from zzz 

ve Bu yüzden yapmaya çalışıyoruz doğru anlamak eğer

$ clang --version 
Apple LLVM version 7.0.2 (clang-700.1.81) 
Target: x86_64-apple-darwin14.5.0 
Thread model: posix