최신 Android Studio (2.2.2) 버전을 사용하여 C/C++ 라이브러리를 만들려고합니다. 다른 코드 파일에 대해 다른 컴파일 옵션을 지정하려면 어떻게해야합니까? 내 라이브러리의 .cpp 코드 중 일부는 STL을 사용하며 성공적으로 컴파일하려면 "-std = gnu ++ 11"이 필요합니다. 경우이 오류가 발생합니다 나의 라이브러리 코드의 일부가
나는 유닉스 환경에서 다음과 같은 간단한 CPP 파일이 있습니다. 나는이 프로그램을 실행하면
warning: format ‘%s’ expects argument of type ‘char*’, but argument 2 has type ‘int’ [-Wformat=]
printf("HELLO = %s \n", HELLO);
, 나는
나는 몇 가지 경고가 있습니다. Makefile에서 O2 cflags를 삭제하면 문제없이 컴파일됩니다. 이러한 pthread 매크로에 gcc 최적화를 사용하는 것은 금지되어 있습니까? 나는 사람이나 문서에서 아무것도 찾을 수 없었다. 그건 그렇고, 스레드 끝에 청소 물건에 대한 대안이 무엇입니까? 또한 gcc 암과 완벽하게 작동합니다. 하지만 x86 gcc
./configure && make && make install으로 빌드 할 수있는 프로젝트 (Antlr3 for C)가 있습니다. 컴파일 명령에 사용되는 플래그 중 하나는 -Wl,-soname -Wl,libantlr3c.so입니다. 전체 명령은 다음과 같습니다. libtool: link: gcc -shared .libs/antlr3baserecognize
모든 최신 구성 요소가 포함 된 gcc-6.2 도구 체인을 구축했습니다. CC = arm-none-eabi-gcc
AS = arm-none-eabi-as
LD = arm-none-eabi-ld
내 메이크 플래그는 다음과 같습니다 I 컴파일러를 통해함으로써 연결하고 CFLAGS = -std=c11 -Wall -Werror -Wfatal-error