Странные ошибки компилятора в Travis CI, которые не происходят на локальной машине

1

Я сделал тестовое репо GitHub для игры с Travis CI, и он работал нормально, пока я не попытался использовать внешние зависимости. В .travis.yml меня есть

install:
  - sudo apt-get install libsfml-dev

и эта команда успешно выполняется на машине Travis, но при компиляции я получаю ошибки, подобные

main.cpp: In function ‘int main():
main.cpp:6:5: error: ‘CircleShape is not a member of ‘sf
main.cpp:6:21: error: expected ‘; before ‘shape
main.cpp:7:5: error: ‘shape was not declared in this scope

на g++ и

main.cpp:6:9: error: no member named 'CircleShape' in namespace 'sf'
    sf::CircleShape shape(100.f);
    ~~~~^
main.cpp:7:5: error: use of undeclared identifier 'shape'
    shape.setFillColor(sf::Color::Green);
    ^

на clang++.

Ни на моей машине с Windows, ни на моей Linux VM я не получаю эти ошибки, а код - пример кода из учебников SFML.

В команде install нет ничего плохого, поскольку компиляторы ничего не говорят о некорректном заголовке.

Что вызывает такие ошибки? Как я могу их исправить? Я сделал что-то не так с командой install?

  • 2
    Насколько я помню, Трэвис использует Ubuntu 12.04, которая очень старая. Может быть, есть проблема с установленной версией SFML?
  • 0
    Ах, интересный намек; Я посмотрю на это
Показать ещё 4 комментария
Теги:
dependencies
travis-ci

1 ответ

2
Лучший ответ

Как @GoodDeeds опубликовал в комментариях, дистрибутив Ubuntu устарел.

Добавьте dist: trusty (как указано @joepd) в ваш файл .travis.yml чтобы использовать обновленное распространение.

  • 0
    Вы, вероятно, хотите сделать это dist: trusty .
  • 0
    Это? Хорошо, я просто быстро просмотрел страницу загрузки Ubuntu, и kylin был тем, что я увидел.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню