Я хочу собрать библиотеку для VxWorks 6,8 с помощью Cmake а также Затмение 3.7 Индиго CDT (с VxWorks Пентиум а также Power-PC набор компиляторов). Шаги cmake работают нормально, и я получаю готовый проект Eclipse.
Но компиляция не удалась из-за отсутствия заголовков.
Пример:
#if defined __VXWORKS__
#include <sys/socket.h>
// some more includes here
#endif
Это не удается, потому что sys/socket.h
пропал, отсутствует.
Включить каталог C:/<path to vxworks>/target/h
где большинство заголовков доступны (в том числе sys
каталог, но есть нет socket.h
в нем!) установлено.
Пропажа socket.h
является C:/<path to vxworks>/target/h/wrn/coreip/sys
, Оба пути установлены как включающие каталоги — тем не менее все еще отсутствуют.
Я начал писать некоторые «Фиктивные заголовки» — заголовки, которые размещены в соответствующем подкаталоге target/h
и включать только фактические заголовки изtarget/h/wrn/coreip
, Это решение работает, но эти заголовки включают в себя несколько дополнительных заголовков сами по себе, так что те тоже нуждаются в таком обходном пути (а затем новому требуется еще немного…).
Мне интересно, почему это не работает даже с включенными путями, установленными в затмении.
Большинство заголовков VxWorks не имеют этой проблемы; кажется, только для сети.
Есть ли фокус или что-то я пропускаю?
Сообщение об ошибке отсутствует заголовок:
ошибка: sys / socket.h: нет такого файла или каталога
Предупреждение я получаю во время компиляции:
[путь vxworks здесь] /h/vsbConfig.h:42:2: предупреждение: #warning
«Проект VxWorks Source Build (VSB) не указан; используется по умолчанию
Конфигурация VxWorks UP в папке $ WIND_BASE / target / lib / h / config «
EnvironmentVariables WIND_BASE
, WIND_HOME
а также WIND_LIC_PROXY
установлены в затмении.
Я кросс-компиляция из Win7.
Добавление пути для включения каталогов в Eclipse недостаточно. Вы должны добавить это к cmakelists тоже. Ты можешь использовать include_directories("[your path here]")
сделать это.
Других решений пока нет …