При построении C++ проектов с использованием make
на OSX 10.6, я определил, что определение препроцессора __LP64__
, кажется, всегда автоматически установленного компилятором (т.е. оно не определено в любом файле заголовка) (см Where is __LP64__ defined for default builds of C++ applications on OSX 10.6?). Это приводит к вопросу: возможно ли даже для создания 32-разрядного приложения на OSX 10.6, которое предназначено (и работает) на другой системе OSX 10.6?Возможно ли построить 32-разрядные приложения на OSX 10.6, которые работают на других системах OSX 10.6?
Я слышал, что OSX 10.6 всегда 64-разрядная ОС - что даже не возможно запустить OSX 10.6 в качестве 32-разрядной операционной системы. Если это так, то имеет смысл, что невозможно для создания 32-разрядного приложения на OSX 10.6, которое будет работать в другой ОС OSX 10.6.
Мне нужно знать это, чтобы я мог знать, создаю ли я 64-битное приложение или нет (я пытался создать мой текущий проект как 32-битное приложение, так как соответствующая версия Windows также является построенный как 32-разрядный, но, возможно, мне нужно включить все 64-битные флаги и создать версию этого приложения OSX 10.6 в качестве полнофункционального 64-битного приложения).
Спасибо. Это был флаг -m32, который я отсутствовал. Действительно, я должен был это знать или смотрел на «man make», но я предположил, что файл 'runConfigure' для стороннего проекта (который имеет свой собственный флаг для 32-битных сборников) позаботится об этом. –