Включение только заголовочных файлов не запускает программу

Я запускаю свои программы в Ubuntu, используя библиотеку имен cpt. Я включаю необходимые файлы заголовков из библиотеки, но программа не работает, потому что она не может получить доступ к функциям в файле заголовка. (показывает эту ошибку) Я должен также включить файлы.cpp, которые содержат полное определение функции. Теперь я запускаю свои программы, включая файлы.cpp, связанные с необходимыми заголовками. Почему я получаю эту ошибку, несмотря на то, что во время компиляции у меня есть -I/Desktop/cpt?

3 ответа

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

Владимирм правильно, вам не нужно #include.cpp файлы. файлы заголовков должны компилироваться с или без связанных с ними файлов.cpp. Все файлы.cpp связаны друг с другом в процессе, известном как связывание, но заголовочные файлы предоставляют прототипы для функций во время связывания.

Вы используете угловые скобки вокруг #include? например

#include <mylib.h> 

Если это так, вы можете рассмотреть возможность перехода на двойные кавычки, например,

#include "mylib.h"

В зависимости от того, где находятся исходные файлы, на которые вы ссылаетесь, это может быть проблемой.

Может быть, вам следует связать вашу программу с соответствующей разделяемой / статической библиотекой, которая обеспечивает реализацию этих функций, объявленных в заголовочном файле?

Другие вопросы по тегам