LINUX.ORG.RU

mingw что-то туплю


0

2

не знаю, оффтоп или нет, но может кто-то ответит:
надо было установить gcc на винду - установили mingw, выполняем make - и оба-на - уж не знаю кто - толи make при передаче gcc, толи сам gcc вообще не разбирают пути к файлам. а проект разветвленный и если в makefile есть строка собрать файл типа D:\home\1\1.cpp (причем слэш хоть / хоть \), gcc пишет что файла dhome11.cpp он не нашел - и ведь где-то он прав, зззараза ))). mingw последний, свежескаченный.
подскажите пожалуйста, что я делаю не так?

★★

Не выкладываешь кусок Makefile с проблемным правилом. Телепаты опять куда-то поразъехались.

arturpub ★★ ()
Ответ на: комментарий от arturpub

эээ...

.obj\aexec.obj: d:\work\alex\alib\sources\aexec.cpp
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o .obj\aexec.obj d:\work\alex\alib\sources\aexec.cpp
файл d:\work\alex\alib\sources\aexec.cpp gcc видит как d:workalexalibsourcesaexec.cpp. этот пример, по-моему, ничего нового не дает. могу весь файл залить. но он не маленький

Vinill ★★ ()
Ответ на: комментарий от Vinill

\ это символ экранирования. Дублируй его или пиши /.

slovazap ★★★★★ ()

Привязывай makefile к относительным путям и юзай msys. А ещё лучше освой cmake. Ну или вообще кросскомпилируй из линукса с помощью mxe.

Archer73 ()
Ответ на: комментарий от slovazap

обратный слэш уже проходил испытания с тем же результатом. дублировать... этож ппц просто. makefile очень немаленький. да и вообще-то думалось, что без бубна обойдется...
а не в курсе - это make этого не понимает или gcc? или вообще оба?

Vinill ★★ ()
Ответ на: комментарий от Archer73

есть нюанс: makefile генерится посредством qmake... и чисто глядя на то, как он создается - к нему нет никаких претензий - он правильный. в линухе все прекрасно и все рады. в виндовсе - почему-то выкидываются напрочь все слэши - и прямые и обратные. ради винды перелазить на cmake.. ну не знаю, пока не хотелось бы. и причем, если это косяк gcc - проблема вряд-ли исчезнет - слэши-то никуда не денутся. и проект, как говорилось уже - не маленький.
msys пробовали с тем же результатом.
сейчас попробуем двойные слэши - но это тоже... не хотелось бы... причем очень.

Vinill ★★ ()
Ответ на: комментарий от Archer73

а, кстати - mxe - что-то мало информации - насколько хорош? насколько глюкавый? какой стандарт с++ поддерживает? кроме их сайта еще какая-нить инфа есть?
спасибопожалуйста

Vinill ★★ ()
Ответ на: комментарий от Vinill

makefile генерится посредством qmake

Тогда странно откуда проблемы появляются. Под windows нужно сгенерировать makefile и запустить mingw32-make. Если ничего линуксо специфичного в pro файле не прописано, то должно собираться.

kamre ★★★ ()
Ответ на: комментарий от Vinill

Я сам mxe недавно использую. Qt и GTK там есть. GTK приложения под винду собираются без всяких проблем.

Archer73 ()
Ответ на: комментарий от Archer73

надо будет попробовать. спасибо. а бывают обратные аналоги - из винды в линух?

Vinill ★★ ()
Ответ на: комментарий от kamre

уже было обрадовался - до этого запускал просто make. но.. :

gcc -c -mthreads -w -O2 -fexceptions -DUNICODE -DQT_DLL -DQT_THREAD_SUPPORT -DQT_NO_DEBUG -I"C:\MinGW\include" -I"c:\qt\3.3.6\include" -I"d:\work\alex\alib\headers" -I"c:\qt\3.3.6\include" -I"." -I"moc" -I"c:\qt\3.3.6\mkspecs\win32-g++" -o obj\aexec.o d:\work\alex\alib\sources\aexec.cpp
gcc.exe: error: d:workalexalibsourcesaexec.cpp: No such file or directory
gcc.exe: fatal error: no input files
Makefile:511: recipe for target 'obj\aexec.o' failed
видимо, это косяк именно gcc. но все равно спасибо ). будем искать ))

Vinill ★★ ()
Ответ на: комментарий от Vinill

вообщем-то, проблема стала ясна - если кому-то интересно - надо все файлы с путями заключать в «» - «d:\work\alex\alib\sources\aexec.cpp» и приходит счастье. осталось понять как qmake это объяснить ))
хотя нет, не qmake, а именно make. все остальное она не спрашиваясь gcc в кавычках передает...

Vinill ★★ ()
Последнее исправление: Vinill (всего исправлений: 1)

Ты уверен, что у тебя PATH содержит правильные пути? В этом вашем оффтопике хрен пойми что с этим творится и ты можешь запускать make не от MinGW, а от чего-то еще, установленного в системе.

m0rph ★★★★★ ()
Ответ на: комментарий от m0rph

два коммента над твоим.
просто gcc, видимо, строки без кавычек еще и обрабатывает, и походу, слэши не входят в его кошерный набор. ибо при заключении имен файлов из других директорий в кавычки gcc все кушает как надо.

Vinill ★★ ()
Ответ на: комментарий от Vinill

Откуда ты такой gcc взял? Сейчас mingw идет вместе с Qt 5.1.1, в нем gcc 4.8 и mingw32-make, которые работают с qmake без проблем.

kamre ★★★ ()
Ответ на: комментарий от kamre

ну да. gcc 4.8. правда, qt 3.3.6 - требования такие. но это интересно. счас 5 qt дерну. может, новый qmake проблему решит.
спасибо

Vinill ★★ ()
Ответ на: комментарий от Vinill

qmake от Qt 5.1 точно не подойдет к Qt 3.3.6, откуда вообще необходимость в такой древности может возникнуть?

kamre ★★★ ()
Ответ на: комментарий от kamre

ну мне ж никто не может запретить использовать qmake от 5 версии для генерации makefile ). а причуды заказчика называются необсуждением ).
хотя, честно говоря, не думаю, что проблема решится. makefile то правильный создается... когда все файло лежит в одной папке - все прекрасно собирается. вот когда исходники разбросаны по разным папкам - вот тут-то и начинается прекрасное ).
ну все равно спасибо)

Vinill ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.