Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > как прикрутить mpi под C++ Builder 6.0


Автор: rocco 8.11.2007, 15:08
Скачал wpmi1_3. Установил. Все хэди и либи кинул в соответствующие папки для С++ Builder 6.0. Когда программа линкуется ругается на функции библиотеки. Как все таки запустить простейшую программу?

Автор: bsa 8.11.2007, 15:49
а ты прописал библиотеки в проекте? просто кинуть в папку недостаточно. А потом, формат либ у билдера и msvc отличается.

Автор: rocco 8.11.2007, 17:10
Так как все таки запустить простейшую прогу? Может писать в Visual Studio 2005? 

Автор: marcusmae 8.11.2007, 17:17
mpi = Message Passing Interface?

Цитата(rocco @  8.11.2007,  15:08 Найти цитируемый пост)
Когда программа линкуется ругается на функции библиотеки

Как? = Unresolved external symbol ... ? Возьмите dumpbin.exe или что-нить такое, умеющее дампить содержимое библиотек и посмотрите, соответствует ли то, что ищёт линкер для Вашей проги тому, что есть в библиотеках. Может, он ищет с ведущим подчерком, а там - без, или там имена декорированные, а у вас - нет (или наоборот). Если соответствует, то точно ли Вы их указали в настройках проекта Linker->Input ?

Цитата

формат либ у билдера и msvc отличается


Как это? Операционная ситема вообще способна работать? smile 

Цитата

Так как все таки запустить простейшую прогу? Может писать в Visual Studio 2005? 

Не вижу никаких особых причин, чтобы не работало на шестёрке...

Автор: marcusmae 8.11.2007, 18:42
А, вот ещё что вспомнил : в подпрограммах MPI основная масса аргументов передаётся по ссылке (по адресу). Так что, проверьте, стоят ли амперсанды & там, где они должны стоять.

Автор: rocco 8.11.2007, 20:09
Ссылки есть, там все нормально. Пробую прописать библиотеку в свойствах проекта -> Import type library -> Add и библиотека не подгружается. Просто нужно ее нормально прописать для Билдера, но пока не получается smile 

Автор: JackYF 8.11.2007, 20:42
Цитата(marcusmae @  8.11.2007,  17:17 Найти цитируемый пост)
Как это?

Ну так это. Формат .lib и объектных файлов - разных. Вот у длл формат специфированный, да. Поэтому любой и может их юзать. В винде ;)

Автор: marcusmae 8.11.2007, 20:48
JackYF, ага, я тоже прочитал некоторую статью и теперь понял, о каких таких форматах говорит bsa. Речь идёт о разных форматах объектных файлов, генерирумых линкерами различных производителей. Вот http://www.metagraphics.com/metawindow/faq/mwfaq030.htm :

Цитата

When it comes time to link files with different formats, different linkers do differnt things. For example, the Microsoft Visual C/C++ linker is designed for COFF format object files and libraries, but will try to convert OMF object files into COFF files if necessary. This works in some cases, but unfortunately Microsoft LINK does not support all OMF record types, so in many situations the linker may still fail when given OMF format object files. Also while Microsoft LINK attempts some support for OMF object files, it will refuse to process any OMF format libraries. Other linkers, such as Borland's TLINK, are designed for OMF object files and will similarly refuse to work with COFF-format object or library files. Some DOS extender and embedded system vendors, such as Phar Lap, provide their own linkers which support both OMF and COFF, giving you a choice.


Как-то даже не верится, что это является непреодолимой трудностью. На мой взгляд, борландовские библиотеки линкуются к MSVS гораздо чаще, чем это указывается тональностью оборота in many situations the linker may still fail. А для проделывания обратного у Борланда даже есть некий конвертор Coff2Omf.exe. Возможно, следует порыть в этом направлении...

Ну или использовать динамические библиотеки вместо статических.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)