Clang ++ 3.5.0 -родинамический

Я компилирую код на c ++ и пытаюсь добавить опцию -rdynamic, чтобы я мог распечатать значимую трассировку стека для отладки моей программы на c ++, но clang выдает предупреждение «аргумент не используется во время компиляции:« -rdynamic » ».

В качестве теста в моей системе я пытался написать простую программу на c ++ и скомпилировать ее с -rdynamic, и это не сработало, но с этим проектом это не сработало.

Любой совет очень ценится

2

Решение

Вы, вероятно, используете -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)

2

Другие решения


По вопросам рекламы [email protected]