Program berbeda dalam proyek Xcode C ++ yang sama

2

Saya mencoba menggunakan XCode sebagai lingkungan pelatihan saya untuk program C ++ sederhana. Jika saya membuat proyek baru, saya bisa berhasil menyelesaikan semuanya (kompilasi, jalankan) tetapi Jika saya menambahkan satu file lagi, itu tidak dapat dikompilasi sebagai yang terpisah. Itu berarti bahwa saya perlu memiliki main2 () dan main3 () dll karena memiliki 2 file dengan dua main () di folder yang sama menyebabkan kesalahan.

Dengan kata-kata sederhana, saya ingin menulis kode untuk 30 contoh C ++, masing-masing dalam file .cpp sendiri dan mengkompilasi masing-masing secara terpisah dan bukan sebagai keseluruhan proyek (semua file bersama bahwa Jika ada dua fungsi dengan nama yang sama, itu akan crash).

Radolino
sumber
1
Anda harus membuat target terpisah untuk setiap file. Berikut ini info lebih lanjut tentang Apple Pages: developer.apple.com/library/mac/recipes/…
Mateusz Szlosek
Saya tidak percaya itu akan dilakukan karena saya perlu mengatur skema baru untuk setiap file. Kita berbicara tentang helloworld.cpp, factorial.cpp dll. - program yang sama sekali berbeda dari buku.
Radolino
Eh, Anda harus menunggu sedikit sampai saya mendapatkan tangkapan layar lebih banyak. Anda harus membuat target yang terpisah untuk dapat mengkompilasi program yang terpisah.
Mateusz Szlosek
Saya tidak ingin mengkompilasi 30 program setiap kali saya membuat surat perubahan di salah satu dari mereka. Seandainya XCode mendukung jenis penggunaan ini.
Radolino
Lihat jawaban saya. Anda hanya akan mengkompilasi satu file, cukup ubah target yang ingin Anda kompilasi.
Mateusz Szlosek

Jawaban:

7

Untuk mengkompilasi beberapa file terpisah (akibatnya biner terpisah), Anda harus membuat target terpisah untuk setiap file.

Untuk menambahkan target baru, silakan pilih: File -> New -> Target .. , pilih misalnya Command Line Tool . Pastikan itu ditambahkan dengan benar ke proyek Anda. Inilah contohnya: masukkan deskripsi gambar di sini

Saya main.cppditambahkan ke target multiple_targetsseperti ini: masukkan deskripsi gambar di sini

main-kopia.cppFile saya ditambahkan target2seperti ini: masukkan deskripsi gambar di sini

untuk memastikan memeriksa fase pembuatan untuk setiap target, berikut ini contoh target2Fase Pembuatan saya : masukkan deskripsi gambar di sini

Dengan ini saya dapat mengkompilasi keduanya main.cppdan main-kopia.cpp. Perhatikan bahwa keduanya ada main()di dalamnya.

Mateusz Szlosek
sumber
tidak banyak fleksibel, tetapi setidaknya berfungsi.
Radolino