Где __LP64__ определен для стандартных сборок приложений C ++ на OSX 10.6? - PullRequest
4 голосов
/ 17 июля 2011

Я собираю стороннюю библиотеку в 32-битном режиме на OSX 10.6 (библиотека Xerces 2.8). Я определил, что определение препроцессора __LP64__ установлено. Однако, насколько я вижу, он не устанавливается ни в каких файлах конфигурации стороннего проекта, и глобальный поиск по всем файлам (через Finder) для #define __LP64__ не показывает мне, где это происходит. определяется системой.

Я собираю библиотеку через make в командной строке (Xcode не задействован).

Я хотел бы знать, где определяется __LP64__ и какова его цель, учитывая, что я собираю проект в 32-битном режиме.

1 Ответ

12 голосов
/ 17 июля 2011

Он определяется автоматически компилятором, а не в любом заголовке.Если он установлен, вы создаете для 64-битных целей.

(заголовок может определить его, если компилятор этого еще не сделал, но не должен. Если вы так думаетеВ этом случае добавьте #define __LP64__ к своему коду и посмотрите на ошибку во время предварительной обработки, чтобы определить местоположение предыдущего определения.)

...