G ++ математическая проблема - PullRequest
0 голосов
/ 13 декабря 2010

Я надеюсь, что кто-то тоже сталкивался с этой проблемой раньше.

Я пытаюсь использовать Visual Studio для разработки под Linux с G ++.

Я пытаюсь включить math.h и использовать tanf ()

Если я скомпилирую с помощью компилятора g ++ «arm-none-linux-gnueabi-g ++», все будет работать

но если я добавлю этот каталог включения, который, как утверждают документы, будет правильным, и "CodeSourcery \ Sourcery G ++ Lite \ arm-none-linux-gnueabi \ libc \ usr \ include \" затем включите math.h,

visual studio не распознает математические функции, а именно tanf ().

Кто-нибудь имеет представление, почему?

спасибо за любую помощь.

редактирование: это же приложение успешно компилируется с этой командной строкой:
arm-none-linux-gnueabi-g ++ -o test main.cpp "-I% PALMPDK% \ include" "-I% PALMPDK% \ include \ SDL" "-L% PALMPDK% \ device \ lib" -Wl, - -allow-shlib-undefined -lSDL -lGLESv2 -lpdl

Ответы [ 4 ]

1 голос
/ 13 декабря 2010

1) В C ++ вы включаете <cmath>, а не math.h.

2) в C ++, вы используете tan с аргументами с плавающей запятой (имеется перегрузка), а не tanf.

1 голос
/ 13 декабря 2010

Я пытаюсь использовать Visual Studio для разработки под Linux с G ++.

Не надо.

Похоже, вы пытаетесь использовать кросс-компиляторпостроить для встроенной машины ARM.Скорее всего, вам не удастся сойти с рук только с помощью компилятора - вам понадобится целое корневое окружение, чтобы ссылаться на что-то большее, чем libc.Visual Studio, хотя и является хорошей IDE, не может быть превращен в эту роль.Вам действительно понадобится настоящая машина Linux с соответствующей корневой средой (будь то домашняя среда, buildroot, openembedded и т. Д.).

0 голосов
/ 14 декабря 2010

Я нашел решение!

Я скачал и установил MinGW вместо этого, и это прекрасно работает.У меня есть все прототипы функций для дополнительных вещей, таких как gettimeofday (), и все обычные суффиксы, такие как tanf (), по-прежнему работают нормально.

ps: в Visual Studio даже есть кнопка «Использовать окно вывода»"где он красиво сбрасывает любые ошибки, которые генерирует" arm-none-linux-gnueabi-g ++ "

0 голосов
/ 13 декабря 2010

Я бы предположил, что Visual Studio видит <math.h> и думает, что должен ссылаться на математический заголовок Microsoft (который в основном допотопный и не поддерживает такие тонкости C99, как tanf). Это только догадка, так как вы не опубликовали фактическую ошибку, с которой вы столкнулись; Что именно вы имеете в виду, когда говорите: «Visual Studio не распознает математические функции»? Не компилируется? Связывать? Каков точный текст сообщения об ошибке? Какие именно параметры передаются компилятору или компоновщику?

...