Я запускаю свои программы в Ubuntu, используя библиотеку имен cpt. Я включаю необходимые файлы заголовков из библиотеки, но программа не работает, потому что она не может получить доступ к функциям в файле заголовка. (показывает эту ошибку) Я должен также включить файлы .cpp, которые содержат полное определение функции.
Теперь я запускаю свои программы, включая файлы .cpp, связанные с необходимыми заголовками. Почему я получаю эту ошибку, несмотря на то, что во время компиляции у меня есть -I / Desktop / cpt?
Вы не должны включать файлы .cpp, они должны быть скомпилированы, вы должны указать своему компилятору, какие файлы .cpp компилировать и где найти файлы .h, которые требуются для файлов .cpp.
Может быть, вам следует связать вашу программу с соответствующей разделяемой / статической библиотекой, которая обеспечивает реализацию этих функций, объявленных в заголовочном файле?
Владимирм правильно, вам не нужно #include .cpp файлы. файлы заголовков должны компилироваться с или без связанных с ними файлов .cpp. Все файлы .cpp связаны друг с другом в процессе, называемом связыванием, но заголовочные файлы предоставляют прототипы для функций во время связывания.
Вы используете угловые скобки вокруг #include? например
#include <mylib.h>
Если это так, вы можете рассмотреть возможность перехода на двойные кавычки, например,
#include "mylib.h"
В зависимости от того, где находятся исходные файлы, на которые вы ссылаетесь, это может быть проблемой.