c vs c ++ на платформе Solaris 9 - PullRequest
1 голос
/ 09 июня 2010

У меня есть программа, которой я делюсь с третьей стороной. Я буду предоставлять исполняемый файл для них. Он написан на c ++, но также использует некоторые c. они предполагают, что это должно быть только c. Ребята, думаете ли вы, что это будет проблемой, поскольку я буду компилировать и собирать ее на sparc-станции, которая будет в некоторой степени соответствовать их системным характеристикам, таким как Solaris 9 и чипсет (32 или 64), в зависимости от того, что они используют?

- это Solaris 9, способный скомпилировать код на С ++, который я использовал, или он должен добавить библиотеки времени выполнения С ++ на своем конце. Я использую классы C ++ STD. в любом случае, если я строю все это с моей стороны, зачем беспокоиться о том, что у них есть? это не статическая / динамическая библиотека, которой я делюсь, где я думаю, что вступит в игру.

просто любопытно, так как они говорят, что это должна быть компиляция c. Я подозреваю, что если они ожидают библиотеку, тогда, возможно, мне нужно решить эту проблему, но если это просто исполняемый файл, то все, что имеет значение - такие системные спецификации, как os и chipset?

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

Ответы [ 2 ]

1 голос
/ 09 июня 2010

Поскольку вы предоставляете им только исполняемый файл (без разделяемых библиотек), у вас не должно быть особых проблем.

Просто запустите команду ldd в вашем двоичном файле и посмотрите, с какими библиотеками C ++ он ссылается (например, вы можете увидеть libstdc ++, если вы используете g ++); Вы должны включить их вместе с исполняемым файлом. Не полагайтесь на их наличие у пользователя, они могут отсутствовать или быть несовместимыми. Вы захотите использовать -rpath (переключатель компоновщика), чтобы убедиться, что ваш двоичный файл будет использовать предоставленные вами библиотеки, а не любую библиотеку, найденную в системе.

Кроме того, лучше обеспечить компиляцию на более старой версии Solaris, чтобы обеспечить совместимость, т. Е. Не компилировать на Solaris 10 для Solaris 7, но на 7 на 10. Вы получаете идею ...

1 голос
/ 09 июня 2010

В худшем случае вы всегда можете статически связать в библиотеке времени выполнения C ++.

Если вы отправляете им только исполняемый файл, я не понимаю, почему язык имеет какое-либо значение.Если вы также делитесь кодом, конечно, это совсем другая история.

...