Bagaimana cara menghentikan MSYS dari mengubah opsi kompiler saya?

0

Apakah ada cara untuk menghentikan MSYS / MinGW dari mentransformasikan apa yang dianggap jalur pada baris perintah saya? Saya punya proyek yang menggunakan nmake & amp; Microsoft Visual Studio 2003 (yeecccch). Saya memiliki sistem build semua porting dan siap untuk GNU make (dan diuji dengan Cygwin). Sesuatu yang aneh terjadi pada flag kompiler saya ketika saya mencoba untuk mengkompilasi di lingkungan MSYS. Berikut ini contoh yang disederhanakan:

$ cl /nologo
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.6030 for 80x86
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:nologo.exe
C:/msys/1.0/nologo
LINK : fatal error LNK1181: cannot open input file 'C:/msys/1.0/nologo.obj'

Seperti yang Anda lihat, MSYS mengubah /nologo beralih ke jalur windows, dan kemudian mengirimkannya ke kompiler. saya sangat tidak ingin ini terjadi - sebenarnya saya akan senang jika MSYS tidak pernah mengubah jalur apa pun - sistem build saya harus mengurus semua itu ketika saya pertama kali porting ke Cygwin. Apakah ada cara untuk mewujudkannya?

Itu berfungsi untuk mengubah perintah

$ cl -nologo

Yang menghasilkan hasil yang diharapkan, tetapi sistem pembangunan ini sangat besar dan sangat menyakitkan untuk diperbarui. Saya benar-benar tidak ingin harus masuk dan mengubah setiap penggunaan a / untuk bendera ke -. Secara khusus, mungkin ada alat yang tidak mendukung penggunaan - sama sekali, dan kemudian saya akan benar-benar terjebak.

Terima kasih atas sarannya!

Carl Norum
sumber
2
Posting di superuser karena fakta bahwa itu adalah kompiler tidak benar-benar masalah, itu adalah masalah umum MSYS vs aplikasi asli.
Carl Norum

Jawaban:

2

Saya menemukan pertanyaan ini ketika mencari cara untuk menjalankan program windows yang memerlukan argumen dalam bentuk:

/arg:<path>

di mana path harus path windows yang sepenuhnya memenuhi syarat

Saya hanya ingin menguraikan hal-hal berikut dari pertanyaan awal:

Itu berfungsi untuk mengubah perintah

cl -nologo

Yang menghasilkan hasil yang diharapkan .... Secara khusus, mungkin ada alat yang tidak mendukung penggunaan - sama sekali, dan kemudian saya benar-benar akan terjebak.

Seperti yang ditunjukkan poster asli, mengubah argumen menggunakan - sebagai berikut, berfungsi dengan baik:

-arg:<path>

Saya sebenarnya sangat terkejut dengan ini, karena ini tidak didokumentasikan oleh bantuan program. Kebetulan program dalam hal ini juga dibuat oleh Microsoft (seperti halnya nmake dalam kasus poster asli). Jadi jika program yang Anda coba jalankan dibuat oleh Microsoft, coba lakukan ini walaupun tidak berdokumen.

Mudah-mudahan tidak ada program di luar sana yang menggunakan bentuk argumen baris perintah (imho insane) di luar Microsoft ini, jika ada, saya rasa tidak mungkin menjalankannya dengan MSYS

actf
sumber
0

Jawaban akhirnya adalah bahwa sebenarnya tidak ada cara untuk menghentikan perilaku ini. Saya harus melalui setiap baris dalam sistem build dan mengubah setiap / menjadi a -.

Carl Norum
sumber
Boo! Mendesis! Anda dapat mencoba memposting ke milis ( lists.sourceforge.net/lists/listinfo/mingw-users ) untuk meminta perbaikan bug.
Synetech