Ответ 1
Добавьте -Xclang -flto-visibility-public-std в свои параметры компилятора.
Вот так:
clang++ -Xclang -flto-visibility-public-std -o test.exe test.cpp
Редактировать:
Вместо этого используйте clang-cl:
clang-cl -o test.exe test.cpp
Я просто изучаю, как кодировать.
Я установил clang версии 5 в систему Windows 10 с помощью visual studio 14.
Я создал файл cpp world hello world для тестирования, который работает.
Образец кода
#include <iostream>
using namespace std;
int main()
{
cout << "Hello World!\n";
int rip{1};
int dal{4};
int kane = rip + dal;
cout << kane;
return 0;
}
команда
clang++ -o .\bin\testing.exe test.cpp
Clang компилируется, и я получаю исполняемый файл, который работает как ожидалось. однако я получаю это сообщение.
test-3e53b3.o : warning LNK4217: locally defined symbol ___std_terminate imported in function "int 'public: __thiscall std::basic_ostream<char,struct std::char_traits<char> >::sentry::~sentry(void)'::'1'::dtor$5" ([email protected][email protected][email protected][email protected]@[email protected]@@[email protected]@[email protected]@4HA)
test-3e53b3.o : warning LNK4217: locally defined symbol [email protected] imported in function "public: void __thiscall std::ios_base::clear(int,bool)" ([email protected][email protected]@@[email protected])
Я искал в Интернете и могу найти похожие проблемы, но они не совпадают.
Я понимаю, что это, может быть, просто для вас, ребята, но я в недоумении, я использовал различные IDES и GCC, и этот код ранее не предупреждал об этом предупреждении.
Добавьте -Xclang -flto-visibility-public-std в свои параметры компилятора.
Вот так:
clang++ -Xclang -flto-visibility-public-std -o test.exe test.cpp
Редактировать:
Вместо этого используйте clang-cl:
clang-cl -o test.exe test.cpp