2010-05-29 1 views
3

У меня есть две предварительно скомпилированные библиотеки: X.a и Y.a, а исходный код test.cpp (без основной функции) использует эти две библиотеки.ссылки .a и .o файлы в GCC

Я составил C++ с использованием:

g++ -c test.cpp

и я получил 'test.o'.

Теперь, как связать эти три вместе, чтобы сгенерировать файл .a, потому что test.cpp использует некоторую функцию в X.a и Y.a и других GCC-библиотеках?

BTW, я делаю это под Windows, используя MinGW. Могу ли я переименовать этот .a-файл в .lib и использовать этот .lib в VC?

Спасибо!

ответ

5

Теперь, как я могу связать эти три вместе, чтобы создать файл .a, потому что test.cpp использовать некоторые функции в X.a и Y.a и других библиотек GCC?

.a ничего более ar архива все файлы с указанной объектов (файлы) .o

Могу ли я переименовать этот .a файл .lib и использовать этот .lib в ВК?

Да, но для этого требуется небольшой трюк. См.: http://opensees.berkeley.edu/community/viewtopic.php?t=2267

3

Для того, чтобы добавить свой объектный файл в статической библиотеке вы должны использовать следующую команду:

ar rcs X.a test.o 

Но если вы получаете Xa и Ya я полагаю, вы не автор X и Y , поэтому я не уверен, что вы действительно хотите присоединиться к ним!

Вместо этого вы можете связать каждый объектный файл в один исполняемый файл, но для этого вам нужна функция main!

EDIT: Также я предлагаю вам прочитать this.

+0

Спасибо. Проблема в том, что мне нужно использовать GCC для получения статической библиотеки и использовать VC для связывания этой статической библиотеки, поскольку я сделал некоторые вещи fortran в GCC. –

+0

@David: к сожалению, я ничего не знаю о VC, но кажется что vartec предоставил вам полезную информацию. – Dacav

 Смежные вопросы

  • Нет связанных вопросов^_^