Tôi có một dự án Autotools C đơn giản (không phải C++).Nơi để thêm một CFLAG, chẳng hạn như -std = gnu99, vào một dự án autotools
CFLAGs (bằng cách kiểm tra) có vẻ là -g -O2
.
Tôi muốn tất cả các tệp tạo được tạo cũng có -std=gnu99
được thêm vào CFLAG, vì tôi sử dụng for (int i = 0; i < MAX; i++)
và tương tự.
Tôi rõ ràng có thể hack Makefile, nhưng điều này bị ghi đè trên ./configure
.
Địa điểm chính xác để thêm (hoặc thay đổi) CFLAG được yêu cầu bởi mã (ngược với các CFLAG mà người dùng có thể muốn thay đổi) ở đâu?
(Lưu ý đây là bản sao một phần của Where to add a CFLAG, such as -std=gnu99, into an (Eclipse CDT) autotools project như tôi đã nhận được câu trả lời Eclipse cụ thể mà tôi không muốn.)
@ câu trả lời DevSolar đã không giúp được nêu ra. Tệp configure.ac
(bên dưới) tạo tập lệnh configure
(cũng bên dưới).
configure.ac:
dnl Process this file with autoconf to produce a configure script.
CFLAGS="$CFLAGS -std=gnu99"
AC_PREREQ(2.59)
AC_INIT(tuntest, 1.0)
AC_CANONICAL_SYSTEM
AM_INIT_AUTOMAKE()
AC_PROG_CC
AC_CONFIG_FILES(Makefile src/Makefile)
AC_OUTPUT
$ grep CFLAGS cấu hình
CFLAGS
CFLAGS
To assign environment variables (e.g., CC, CFLAGS...), specify them as
CFLAGS C compiler flags
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_test_CFLAGS=${CFLAGS+set}
ac_save_CFLAGS=$CFLAGS
CFLAGS="-g"
CFLAGS=""
CFLAGS="-g"
if test "$ac_test_CFLAGS" = set; then
CFLAGS=$ac_save_CFLAGS
CFLAGS="-g -O2"
CFLAGS="-g"
CFLAGS="-O2"
CFLAGS=
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
Có thể bạn muốn đặt 'CFLAGS' khi định cấu hình, ví dụ:' ./configure CFLAGS = "- g -O2 -std = gnu99" '. –
Vâng, đó là những gì tôi hiện đang làm. CFLAG tôi muốn thêm '-std = gnu99' là cần thiết, do đó tôi muốn nó không phải là thứ mà người dùng phải cấu hình. Mã sẽ không biên dịch mà không có nó, vì vậy nó phải luôn luôn ở đó, do đó câu hỏi. – fadedbee
Sau đó, làm thế nào về './configure CC =" gcc -std = gnu99 "? –