การสร้างสคริปต์ทุบตีเพื่อรวบรวม / ดำเนินการ C ++


1

ฉันพยายามสร้างสคริปต์ง่ายๆที่จะรวบรวม test.cpp แต่ฉันไม่สามารถใช้งานได้ ฉันใช้งานสคริปต์เช่นนี้:

> bash make.sh

และได้รับข้อผิดพลาดต่อไปนี้:

: No such file or directory
g++: no input files
make.sh: line 3: ./test.out: No such file or directory

นี่คือ make.sh:

#!/bin/sh
g++ -o ./test.out ./test.cpp
./test.out

ฉันลองแล้วโดยไม่ใช้ "./" และมันยังใช้งานไม่ได้ ฉันกำลังใช้งาน Cygwin บน Windows 7 พร้อมกับแพ็คเกจที่เหมาะสมทั้งหมดที่ติดตั้ง (ฉันสามารถรวบรวมและเรียกใช้จากเชลล์เองไม่ใช่จากสคริปต์)


แทนที่. / ด้วยเส้นทางที่แน่นอน! ตัวอย่างเช่น: /home/MyName/test.cpp
Sepahrad Salour

คุณต้องรันสิ่งนี้ในไดเรกทอรีเดียวกัน
Daniel Beck

สิทธิ์ของไฟล์สคริปต์คืออะไร? บิตดำเนินการเปิดอยู่
Frank Thomas

คำตอบ:


2

คุณสร้างหรือยัง make.sh ด้วย Notepad? ถ้าเป็นเช่นนั้นทุกบรรทัดลงท้ายด้วย a CR (รับคืนรถ) และ LF (อาหารเส้น) Cygwin และโปรแกรมที่คล้าย Unix ไม่สามารถจัดการได้ Unix คาดว่าบรรทัดในไฟล์ข้อความจะลงท้ายด้วย a LF (ซึ่ง Unix เรียกอักขระ“ บรรทัดใหม่”) แก้ไขไฟล์ของคุณด้วยเครื่องมือแก้ไข Cygwin (เช่น vi หรือ vim ) และแก้ไข หากคุณไม่สามารถทำได้ให้ลองเพิ่ม“ ; # ” ถึงจุดสิ้นสุดของแต่ละบรรทัด; ที่ควรทำให้เกิด bash เพื่อรักษาผู้กระทำผิด CR เป็นความคิดเห็น

หากต้องการขยายด้านบน: ถ้าทฤษฎีของฉันถูกต้องบรรทัดที่สอง make.sh ดูเหมือนกับ:

g++ -o ./test.out ./test.cpp CR

บวกกับ LF ที่ควรจะมี (ที่ bash ไม่รวมการพิจารณา) ดังนั้น, g++ กำลังมองหาไฟล์ที่มีชื่อ“ ./test.cpp CR ” ซึ่งแน่นอนว่าไม่มีอยู่จริง ดังนั้นมันจึงพูดว่า:

./test.cpp CR : No such file or directory

แต่เนื่องจากการรับคืนรถคืออะไร : No such file or directory เพื่อเขียนทับ ./test.cppดังนั้น : No such file or directory คือทั้งหมดที่คุณเห็น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.