Связывание файлов C ++ - PullRequest
0 голосов
/ 10 марта 2011

У меня есть заголовочный файл, который содержит объявление функции, давайте назовем ее Ах, у меня есть реализация этой функции в файле A1.cpp.Теперь A1.cpp имеет другой файл включает.Не все включенные файлы в A1.cpp доступны (сторонний выпуск).Теперь мой вопрос: возможно ли сделать вызов функции из файла, скажем, main.cpp, динамически связанного с A1.cpp (без компиляции A1.cpp), так как некоторые файлы от сторонних производителей недоступны?

Мое предположение - нет, потому что, если у меня нет доступных файлов, я не могу получить объектный файл A1.cpp и, следовательно, я не могу вызвать функциюОднако, поправьте меня, если я ошибаюсь, скомпилированный файл A1.cpp, то есть A1.o, все еще может использоваться, поскольку я могу ссылаться на него и, следовательно, выполнять вызов функции без зависимости от других включаемых файлов (которых у меня нет?)

Полегче на меня, я не парень C ++ :-) !!Любая помощь или понимание в этом вопросе приветствуется!О, кстати, я начал использовать ndk для Android, поэтому проблема: -)

Ответы [ 2 ]

1 голос
/ 10 марта 2011

Если у вас есть объектный файл (A.o), почему вы не можете просто связать его в двоичном файле?

g++ -o main main.o A.o
0 голосов
/ 10 марта 2011

Если я правильно понял ваш вопрос, то ответ отрицательный, а не тогда, когда целью является просто файл cpp.Единственный способ ссылаться на что-то другое без компиляции - это поместить его в dll или предварительно скомпилированную библиотеку (.lib в windows).Если третья часть находится в .lib или dll, то вам повезло, вам просто нужен файл заголовка, а затем скажите компилятору связать статическую или динамическую библиотеку.Дайте мне знать, если это имеет смысл, если нет, я могу уточнить, предоставив больше информации о вашей настройке и о том, что вы пытаетесь связать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...