LinuxForum.Fans
Тема

О расположении исходников и хедеров...

Автор: cdx 7 сообщений 2751 просмотров
#195199

Доброе время суток! Столкнулся со следующей проблемой:
При компиляции программки, задействующей заголовочный файл (например, #include <mysql.h>), получаю сообщение компилятора о том, что файл не найден.
Locate показывает, что файл лежит во вложенной папке, т.е. .../mysql/mysql.h. Если подключаю по "#include <mysql/mysql.h>", то gcc начинает материться уже на вложенные в mysql.h инклуды...
Нормальной информации о корректном расположении исходников и хедеров не нашел, может как-то пути прописать где-либо нужно?

#195229

gcc -I...

#195244

Все бы ничего, да вот только хотел бы я посмотреть на строки вызова компилятора, если проект завязан на нескольких библиотеках, например, Qt/GTK + MySQL + Socket + ... нужное дописать. Сомневаюсь, что нет более "цивилизованного" способа.

Насколько я понимаю проблему:
заголовочные файлы лежат разложенные по папкам в /usr/src/. Компилятор там и смотрит, но рекурсивно в папки не лезет. Т.е. подключаю, к примеру <mysql/my_global.h>, который ссылается на my_config.h в той же папке, но gcc пытается найти его опять в /usr/src и, естественно, его не находит.

#195253

cdx, это и есть самый правильный и, по сути, единственный путь... должны быть подключены все папки с инклюдами именно таким способом...

cdx написал:
заголовочные файлы лежат разложенные по папкам в /usr/src/

/usr/include/ - fix

#195381
cdx написал:
Все бы ничего, да вот только хотел бы я посмотреть на строки вызова компилятора, если проект завязан на нескольких библиотеках, например, Qt/GTK + MySQL + Socket + ...

Имеете ввиду что строки будут большими? Вы их вручную что ли набираете? Используйте Makefile

#195511

Спасибо всем ответившим. Направление понял :)

З.Ы.: немного трудновато по началу будет избалованному C++Builder'ами и Delphi :)

#195543

ещё есть cmake... ИМХО самое простое - написал список файлов, зависимости и всё - сразу make-файлы... хотя придётся сначала синтаксис изучить...

Войдите или зарегистрируйтесь, чтобы ответить.