У меня быстрый вопрос по поводу "Дополнительные аргументы mtouch"

-gcc_flags "-lstdc++ -L${ProjectDir} -libMonkeyTalk-1.0.40 -lsqlite30 -framework CFNetwork -framework QuartzCore -all_load"

У меня есть это в качестве дополнительного аргумента, но при создании приложения для iOS я получаю следующую ошибку.

Error MT5201: Native linking failed. Please review user flags provided to gcc: "-lstdc++" "-L/Users/henry/Downloads/HelloWorld_iPhone/HelloWorld_iPhone" "-libMonkeyTalk-1.0.40" "-lsqlite30" "-framework" "CFNetwork" "-framework" "QuartzCore" "-all_load" (MT5201) (HelloWorld_iPhone)

Как я могу это исправить? Что не так с моим аргументом? Я пропустил шаг по добавлению библиотеки MonkeyTalk или что-то еще не так?

6
user1529476 24 Мар 2013 в 09:29
1
Вам нужно посмотреть оставшуюся часть журнала сборки, чтобы точно узнать, что пошло не так. В частности, вам нужно посмотреть на ошибки, выдаваемые g ++
 – 
jstedfast
24 Мар 2013 в 16:28
Привет, @Henry, обычный стиль SO - избегать использования явных тегов в заголовке вопроса, а также сводить к минимуму «болтливость», включая нормальную вежливость. Мы просто хотим предположить, что вы уже дружелюбны и вежливы, и не требуем, чтобы вы нам это доказывали :) Я отредактировал ваш вопрос, чтобы привести его в соответствие с типичным стилем. Надеюсь, вы получите отличный ответ.
 – 
Carl Veazey
24 Мар 2013 в 21:02
Спасибо. :) Я новичок в ТАК, поэтому прошу прощения за то, что обидел кого-то ... Спасибо. :)
 – 
user1529476
25 Мар 2013 в 09:57
@jstedfast: я заглянул внутрь вывода сборки и увидел, что ошибка: ld: library not found for -libMonkeyTalk-1.0.40 Думаю, я пропустил первый шаг в процессе.
 – 
user1529476
25 Мар 2013 в 10:03
1
Если ваш не отличается, он должен быть -lsqlite3.0 (пропущенная точка).
 – 
poupou
25 Мар 2013 в 23:22

1 ответ

Лучший ответ

Ошибки MT5201 означают, что сборка завершилась неудачно при запуске собственного компоновщика.

Одна из наиболее частых проблем связана с дополнительными (и непроверенными ) аргументами, передаваемыми компоновщику с помощью -gcc_flags. Вот почему сообщение об ошибке просит вас просмотреть их.

Однако это не единственная причина, по которой связывание может не работать. После проверки вы должны посмотреть журнал сборки (внутри панели ошибок XS), чтобы увидеть предупреждения / ошибки, сообщаемые компоновщиком (и даже более ранние сообщения).

Если в вашем вопросе указаны полные дополнительные аргументы mtouch, то ваша проблема может заключаться в связывании с библиотеками C ++ (вашим "-lstdc++) без указания mtouch компиляции с использованием компилятора C ++ с использованием --cxx.

Обратите внимание, что это аргумент mtouch, не аргумент компоновщика, поэтому он не должен находиться внутри вашего --gcc_flags. Например.

--cxx -gcc_flags "-lstdc++ -L${ProjectDir} -libMonkeyTalk-1.0.40 -lsqlite30 -framework CFNetwork -framework QuartzCore -all_load"
3
poupou 24 Мар 2013 в 19:46
Я заглянул в выходные данные сборки и увидел, что ошибка: ld: library not found for -libMonkeyTalk-1.0.40 Думаю, я, должно быть, пропустил первый шаг в процессе.
 – 
user1529476
25 Мар 2013 в 10:03