eGospodarka.pl

eGospodarka.plGrupypl.comp.programming › undefined reference to __asan przy kompilacja pugixml w Win10
Ilość wypowiedzi w tym wątku: 3

  • 1. Data: 2022-11-16 16:40:15
    Temat: undefined reference to __asan przy kompilacja pugixml w Win10
    Od: Jivanmukta <j...@p...onet.pl>

    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)-$(cxxst
    d)

    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-overfl
    ow
    -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


  • 2. Data: 2022-11-16 20:40:08
    Temat: Re: undefined reference to __asan przy kompilacja pugixml w Win10
    Od: Mateusz Viste <m...@x...invalid>

    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


  • 3. Data: 2022-11-18 11:57:08
    Temat: Re: undefined reference to __asan przy kompilacja pugixml w Win10
    Od: Jivanmukta <j...@p...onet.pl>

    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-overfl
    ow
    -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-overfl
    ow
    -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

strony : [ 1 ]


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: