c по сравнению с C++ по вопросу solaris 9 о платформе

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

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

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

если я неправ в этом предположении, которому сообщают где.

1
задан Dave Powell 9 June 2010 в 19:32
поделиться

2 ответа

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

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

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

1
ответ дан 2 September 2019 в 23:53
поделиться

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

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

1
ответ дан 2 September 2019 в 23:53
поделиться