J'essaye d'écrire un makefile que je peux utiliser sur linux et mac qui construit avec un aseptiseur d'adresse. Cela fonctionne sur mon exemple errante:Makefile pour Linux et Mac avec assainissement d'adresse
CC = gcc
ASAN_FLAGS = -fsanitize=address -fno-omit-frame-pointer -Wno-format-security
ASAN_LIBS = -static-libasan
CFLAGS := -Wall -Werror --std=gnu99 -g3
LDFLAGS += -lpthread
all: hello
hello: tiny_queue.o hello.o
$(CC) -o [email protected] $(CFLAGS) $(ASAN_FLAGS) $(CURL_CFLAGS) $^ $(LDFLAGS) $(CURL_LIBS) $(ASAN_LIBS)
Cela fonctionne sur ubuntu/trusty64
mais échoue sur mon mac avec
$ make
gcc -Wall -Werror --std=gnu99 -g3 -I/opt/X11/include -c -o hello.o hello.c
gcc -o hello -Wall -Werror --std=gnu99 -g3 -fsanitize=address -fno-omit-frame-pointer -Wno-format-security tiny_queue.o hello.o -lpthread -static-libasan
clang: error: unknown argument: '-static-libasan'
make: *** [hello] Error 1
Est-ce que quelqu'un sait comment écrire un Makefile compatible pour Mac et Linux?
p.s. Je suis très nouveau à C, désolé si cette question est super basique.
Générez du code multithread avec l'indicateur '-pthread' pour le compilateur et l'éditeur de liens. '-lpthread' n'est pas adéquat. –
s'il vous plaît voir [AddressSanitizer] (http://clang.llvm.org/docs/AddressSanitizer.html) –
Ce n'est pas lié au langage C. (Strictement parlant pas même une question makefile). – Olaf