🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.programming
3 messages
3 total messages Started by Jivanmukta Wed, 16 Nov 2022 15:40
undefined reference to __asan przy kompilacja pugixml w Win10
#217867
Author: Jivanmukta
Date: Wed, 16 Nov 2022 15:40
118 lines
4024 bytes
Przy próbie kompilacji w Win10 biblioteki pugixml do pugixml.obj mam błędy:
undefined reference to `__asan.........
Mój program w C++ używa tej biblioteki. Pod Linuxem nie mam tych 
komunikatów.
Katalog pugixml/ zawiera plik Makefile. Czy mam coś zmienić w Makefile?


.SUFFIXES:
MAKEFLAGS+=-r

config=debug
defines=standard
cxxstd=c++11
# set cxxstd=any to disable use of -std=...

BUILD=build/make-$(CXX)-$(config)-$(defines)-$(cxxstd)

SOURCES=src/pugixml.cpp $(filter-out tests/fuzz_%,$(wildcard tests/*.cpp))
EXECUTABLE=$(BUILD)/test

VERSION=$(shell sed -n 's/.*version \(.*\).*/\1/p' src/pugiconfig.hpp)
RELEASE=$(filter-out scripts/archive.py docs/%.adoc,$(shell git ls-files 
docs scripts src CMakeLists.txt LICENSE.md readme.txt))

CXXFLAGS=-g -Wall -Wextra -Werror -pedantic -Wundef -Wshadow 
-Wcast-align -Wcast-qual -Wold-style-cast -Wdouble-promotion
LDFLAGS=

ifeq ($(config),release)
	CXXFLAGS+=-O3 -DNDEBUG
endif

ifeq ($(config),coverage)
	CXXFLAGS+=-coverage
	LDFLAGS+=-coverage
endif

ifeq ($(config),sanitize)
	CXXFLAGS+=-fsanitize=address,undefined 
-fno-sanitize=float-divide-by-zero,float-cast-overflow 
-fno-sanitize-recover=all
	LDFLAGS+=-fsanitize=address,undefined
endif

ifeq ($(config),analyze)
	CXXFLAGS+=--analyze
endif

ifneq ($(defines),standard)
	COMMA=,
	CXXFLAGS+=-D $(subst $(COMMA), -D ,$(defines))
endif

ifneq ($(findstring PUGIXML_NO_EXCEPTIONS,$(defines)),)
	CXXFLAGS+=-fno-exceptions
endif

ifneq ($(cxxstd),any)
	CXXFLAGS+=-std=$(cxxstd)
endif

OBJECTS=$(SOURCES:%=$(BUILD)/%.o)

all: $(EXECUTABLE)

ifeq ($(config),coverage)
test: $(EXECUTABLE)
	-@find $(BUILD) -name '*.gcda' -exec rm {} +
	./$(EXECUTABLE)
	@gcov -b -o $(BUILD)/src/ pugixml.cpp.gcda | sed -e '/./{H;$!d;}' -e 
'x;/pugixml.cpp/!d;'
	@find . -name '*.gcov' -and -not -name 'pugixml.cpp.gcov' -exec rm {} +
	@sed -i -e "s/#####\(.*\)\(\/\/ unreachable.*\)/    1\1\2/" 
pugixml.cpp.gcov
else
test: $(EXECUTABLE)
	./$(EXECUTABLE)
endif

fuzz_%: $(BUILD)/fuzz_%
	@mkdir -p build/$@
	$< build/$@ tests/data_fuzz_$* -max_len=1024 -dict=tests/fuzz_$*.dict

clean:
	rm -rf $(BUILD)

release: build/pugixml-$(VERSION).tar.gz build/pugixml-$(VERSION).zip

docs: docs/quickstart.html docs/manual.html

build/pugixml-%: .FORCE | $(RELEASE)
	@mkdir -p $(BUILD)
	TIMESTAMP=`git show v$(VERSION) -s --format=%ct` && python 
scripts/archive.py $@ pugixml-$(VERSION) $$TIMESTAMP $|

$(EXECUTABLE): $(OBJECTS)
	$(CXX) $(OBJECTS) $(LDFLAGS) -o $@

$(BUILD)/fuzz_%: tests/fuzz_%.cpp src/pugixml.cpp
	@mkdir -p $(BUILD)
	$(CXX) $(CXXFLAGS) -fsanitize=address,fuzzer $^ -o $@

$(BUILD)/%.o: %
	@mkdir -p $(dir $@)
	$(CXX) $< $(CXXFLAGS) -c -MMD -MP -o $@

-include $(OBJECTS:.o=.d)

.SECONDEXPANSION:
docs/%.html: docs/%.adoc $$(shell sed -n 
's/include\:\:\(.*\)\[.*/docs\/\1/p' docs/%.adoc)
	asciidoctor -b html5 -a version=$(VERSION) $< -o $@

.PHONY: all test clean release .FORCE

-- 
Ta wiadomość e-mail została sprawdzona pod kątem wirusów przez oprogramowanie antywirusowe AVG.
www.avg.com
Re: undefined reference to __asan przy kompilacja pugixml w Win10
#217868
Author: Mateusz Viste
Date: Wed, 16 Nov 2022 19:40
14 lines
1304 bytes
2022-11-16 o 16:40 +0100, Jivanmukta napisał:
> Przy próbie kompilacji w Win10 biblioteki pugixml do pugixml.obj mam
> błędy: undefined reference to `__asan.........
> Mój program w C++ używa tej biblioteki. Pod Linuxem nie mam tych 
> komunikatów.

Strzelam: asan_xxxx to funkcje odwołujące się do biblioteki
AddressSanitizer, a ty tej biblioteki nie masz?

Szybko googlając wyszukiwarka podpowiada też:
"AddressSanitizer is a part of LLVM starting with version 3.1 and a
part of GCC starting with version 4.8"

Mateusz
Re: undefined reference to __asan przy kompilacja pugixml w Win10
#217869
Author: Jivanmukta
Date: Fri, 18 Nov 2022 10:57
40 lines
2366 bytes
W dniu 16.11.2022 o 20:40, Mateusz Viste pisze:
> 2022-11-16 o 16:40 +0100, Jivanmukta napisał:
>> Przy próbie kompilacji w Win10 biblioteki pugixml do pugixml.obj mam
>> błędy: undefined reference to `__asan.........
>> Mój program w C++ używa tej biblioteki. Pod Linuxem nie mam tych
>> komunikatów.
> 
> Strzelam: asan_xxxx to funkcje odwołujące się do biblioteki
> AddressSanitizer, a ty tej biblioteki nie masz?
> 
> Szybko googlając wyszukiwarka podpowiada też:
> "AddressSanitizer is a part of LLVM starting with version 3.1 and a
> part of GCC starting with version 4.8"
> 
> Mateusz
> 
Mimo, że zamieniłem:

ifeq ($(config),sanitize)
     CXXFLAGS+=-fsanitize=address,undefined 
-fno-sanitize=float-divide-by-zero,float-cast-overflow 
-fno-sanitize-recover=all
     LDFLAGS+=-fsanitize=address,undefined
endif

na:

ifeq ($(config),sanitize)
#    CXXFLAGS+=-fsanitize=address,undefined 
-fno-sanitize=float-divide-by-zero,float-cast-overflow 
-fno-sanitize-recover=all
#    LDFLAGS+=-fsanitize=address,undefined
endif

(tzn. wykomentowałem) nadal mam ten błąd undefined reference.
Nie wiem jak poprawić Makefile, żeby nie było tego błędu.

-- 
Ta wiadomość e-mail została sprawdzona pod kątem wirusów przez oprogramowanie antywirusowe AVG.
www.avg.com
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads