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
Author: Jivanmukta
Date: Wed, 16 Nov 2022 15:40
Date: Wed, 16 Nov 2022 15:40
118 lines
4024 bytes
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
Author: Mateusz Viste
Date: Wed, 16 Nov 2022 19:40
Date: Wed, 16 Nov 2022 19:40
14 lines
1304 bytes
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
Author: Jivanmukta
Date: Fri, 18 Nov 2022 10:57
Date: Fri, 18 Nov 2022 10:57
40 lines
2366 bytes
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