Я компилирую код на c ++ и пытаюсь добавить опцию -rdynamic, чтобы я мог распечатать значимую трассировку стека для отладки моей программы на c ++, но clang выдает предупреждение «аргумент не используется во время компиляции:« -rdynamic » ».
В качестве теста в моей системе я пытался написать простую программу на c ++ и скомпилировать ее с -rdynamic, и это не сработало, но с этим проектом это не сработало.
Любой совет очень ценится
Вы, вероятно, используете -rdynamic
флаг, когда вы просто компилируете исходный код, а не связываете его.
Это флаг для компоновщика, поэтому он вам нужен только при компоновке.
Некоторые версии clang могут не распознавать его, и в этом случае вы можете просто указать clang передать правильную опцию компоновщику, который обычно таков:
-Wl,--export-dynamic
Так, например,
clang++ -rdynamic test.cpp
или же
clang++ --Wl,--export-dynamic test.cpp
Но если вы компилируете и компоноваете отдельно, используйте его только на этапе компоновки:
clang++ -c test.cpp
clang++ --Wl,--export-dynamic test.o
(или как последний шаг: clang++ -rdynamic test.o
)