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

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

0

Решение

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

0

Другие решения

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

0

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

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

#include <mylib.h>

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

#include "mylib.h"

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

0
По вопросам рекламы [email protected]