Tôi đang cố gắng tìm hiểu C++ sâu hơn bằng cách đọc nguồn của STL cũng như gỡ lỗi nó, vì vậy tôi muốn liên kết libstdc++
tĩnh với chương trình của tôi, và nó hoạt động tốt bằng cách sử dụng g++
. Tuy nhiên, làm thế nào tôi có thể đạt được điều tương tự với clang++
trong llvm?Làm thế nào để liên kết libstdC++ tĩnh với clang ++
Nói cách khác, câu hỏi là, clang++
tương đương với -static-libgcc
là gì?
Makefile
Tôi đang sử dụng
CXX=g++
CC=g++
LDFLAGS=-g -O0 -static-libgcc
CFLAGS=-O0 -Wall
CXXFLAGS=$(CFLAGS)
Tôi không nghĩ tĩnh liên kết là những gì bạn cần. Bạn cần phải có thông tin gỡ lỗi cho thư viện, cho dù đó là tĩnh hay động. Bạn có thể tìm thấy điều này ở những nơi khác nhau trong các bản phân phối Linux khác nhau; một số có thư viện tĩnh với thông tin gỡ lỗi, một số có thư viện được chia sẻ chưa được chia sẻ ở đâu đó, một số chỉ có thông tin gỡ lỗi cho thư viện được chia sẻ (ví dụ: Debian/Ubuntu thường làm điều này). –
Tôi đã thử trong g + +, và các công trình liên kết tĩnh, và tôi đoán đó là vì libstdC++ của tôi không bị tước bỏ trong khi libstdC++. Bạn có nghĩa là tôi nên tìm một thư viện được chia sẻ mà không bị tước bỏ? – Haocheng