2016-07-14 12 views
0

C++로 작성된 프로그램을 컴파일하려고합니다. 나는이 메시지 오류 가지고 :우분투 정의되지 않은 참조 오류

undefined reference to `escapeXMLChars(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)' 

내가 검색 한 및이 게시물을 발견 : Undefined reference to process(std::__cxx11::basic_string ...) when compiling affdex linux sample applications

내가 GCC 버전 5를 사용했기 때문에이 오류가 발생 가정을 그래서 4.8로 다운 그레이드 시도하고 컴파일 gcc-4.8 프로그램.

g++-4.8 -m32 -Wall -o boomerang driver.o codegen/chllcode.o codegen/syntax.o util/util.o db/basicblock.o db/proc.o db/sslscanner.o db/cfg.o db/prog.o db/table.o db/statement.o db/register.o db/sslparser.o db/exp.o db/rtl.o db/sslinst.o db/insnameelem.o db/signature.o db/managed.o c/ansi-c-parser.o c/ansi-c-scanner.o boomerang.o log.o db/visitor.o db/dataflow.o db/xmlprogparser.o frontend/frontend.o frontend/njmcDecoder.o frontend/sparcdecoder.o frontend/pentiumdecoder.o frontend/sparcfrontend.o frontend/pentiumfrontend.o frontend/ppcdecoder.o frontend/ppcfrontend.o frontend/st20decoder.o frontend/st20frontend.o frontend/mipsdecoder.o frontend/mipsfrontend.o frontend/_8051frontend.o frontend/_8051decoder.o type/constraint.o type/type.o type/dfa.o loader/BinaryFileFactory.o transform/rdi.o transform/transformer.o transform/generic.o transform/transformation-parser.o transform/transformation-scanner.o db/AssHandler.o db/AssScanner.o -Wl,-rpath -Wl,"lib" -lfl -Llib -lgc -ldl -m32 -lBinaryFile -lexpat 
db/proc.o: In function `UserProc::printDecodedXML()': 
proc.cpp:(.text+0x4590): undefined reference to `escapeXMLChars(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)' 

내가 이전 버전의 gcc를 다운 그레이드해야하는 이유, 나도 몰라 :하지만이 오류가 계속있어,이 출력입니까?

+0

gcc에'-std = C++ 11' 플래그를 사용해보십시오. –

+0

이 기능의 출처는 무엇입니까? 라이브러리이고 링크 된 라이브러리 목록에 포함 된 경로입니까? – Ternvein

+0

@MattSchuchard : 다음과 같이 configure 명령을 사용하고 있습니다. ./configure --host = i686-linux-gnu "CFLAGS = -m32" "CXXFLAGS = -m32" "LDFLAGS = -m32" 이 명령에 -std 플래그를 어떻게 추가합니까? – PhuongLM

답변

1

나는 내 문제를 해결하고 마지막으로 프로그램을 성공적으로 컴파일했습니다. 구성을 다음으로 조정하십시오 :

./configure --host = i686-linux-gnu "CFLAGS = -m32" "CXXFLAGS = -m32" "LDFLAGS = -m32" "CC = gcc -std = C++ 11 -D_GLIBCXX_USE_CXX11_ABI = 0 "" "CXX = g ++ -std = C++ 11 -D_GLIBCXX_USE_CXX11_ABI = 0"