Смешивание исходного кода C ++ 98 и C ++ 11 в automake / gcc

0

У меня есть список файлов cpp в проекте, который построен с использованием инструментов automake.

Некоторые из них написаны с использованием стандарта pre-С++ 11 (т.е. С++ 98), и они не могут скомпилироваться с флагом С++ 11 gcc (-std = С++ 11).

Последние cpp файлы используют стандарт С++ 11, и в компиле необходим флаг -std = С++ 11.

Могу ли я определить в Automake два списка исходных файлов cpp и дать разные флаги компиляции?

  • 1
    Каким бы ни был ответ, рассмотрите возможность обновления старых источников. В конечном итоге это облегчит вашу жизнь.
  • 1
    Если вы смешаете C98 и C11 в одном исполняемом файле, у вас могут возникнуть проблемы. Если вы используете надстройку, вы, скорее всего, получите проблемы.
Показать ещё 1 комментарий
Теги:
c++11
gcc
autoconf
automake

1 ответ

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

Это разорвано непосредственно из флажка для каждого файла с помощью automake

Вы можете связать свой код С++ 11 в lib и предоставить различные флаги для этого подмножества кода в Makefile.am

bin_PROGRAMS        = test 
test_SOURCES        = main.cpp 
test_LDADD          = c11code.la 
noinst_LTLIBRARIES  = c11code.la  
c11code_la_SOURCES  = cxx1_1.cpp cxx1_2.cpp cxx1_3.cpp 
c11code_la_CXXFLAGS = $(CXXFLAGS) -std=c++11

Ещё вопросы

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