У меня есть проект C/C++, который я начал в Linux, и я хочу его сейчас переносить в MacOS. Проблема, с которой я сталкиваюсь, заключается в следующем:Компиляция кода C/C++ на MacOS
Мой исходный код ссылки на библиотеку C (инструмент abc от https://bitbucket.org/alanmi/abc) и использует файлы заголовков из этой библиотеки. При компиляции в Linux все идет хорошо, но при компиляции на MacOS все ломается. Ошибка я получаю следующее:
abc/src/misc/vec/vecPtr.h:895:33: error: too many arguments to function call, expected 0, have 2
Это в основном связано с тем, как указатели на функции обрабатываются на двух системах. Как я понял из поиска в Интернете, это то, что в C указатели на функции с пустой скобкой() считаются имеющими переменное количество аргументов, в то время как это не так в C++. Похоже, что g ++ в Linux умеет правильно компилировать такой код, а на MacOS он терпит неудачу.
Может кто-нибудь может помочь с некоторыми сведениями по этому вопросу?
Благодаря
Кажется например, вы пытаетесь скомпилировать код, который должен быть скомпилирован как C с компилятором C++. Было бы полезно использовать «extern» C «{...}' вокруг содержимого в соответствующем заголовочном файле - или использовать gcc вместо g ++. –
Какой компилятор вы используете? И как вы его вызываете? –
Я использую make-файл с неявными правилами. Я попытался настроить CXX на g ++ и CC на gcc, и это не сработало. Я также пытался оставить их в качестве системных значений по умолчанию, но это также не сработало. – AntiClimacus