Вот пример вывода: < /p>
Код: Выделить всё
agentprocesscontroller.obj : error LNK2019: ����������ⲿ���� "public: void __cdecl DDS_UserInteractManager::TopicData::publish(class boost::shared_ptr const &)" (?publish@?$TopicData@V?$shared_ptr@UDataType@vec_EntityBasicData@EnvSimuData@@@boost@@Uin_tag@DDS_UserInteractManager@@@DDS_UserInteractManager@@QEAAXAEBV?$shared_ptr@UDataType@vec_EntityBasicData@EnvSimuData@@@boost@@@Z)�������ں��� ...
< /code>
Я не уверен, как решить эту проблему. Есть ли способ изменить кодирование вывода линкера MSVC, или это известная проблема с другим решением? Любое руководство будет очень оценено!if (MSVC)
set(CMAKE_C_FLAGS /utf-8)
set(CMAKE_CXX_FLAGS /utf-8)
# enable boost exception handling
set(CMAKE_CXX_FLAGS "/EHsc ${CMAKE_CXX_FLAGS}")
endif ()
Я подтвердил, что все мои исходные файлы кодированы в utf-8. Также вывод в искаженном тексту.
Код: Выделить всё
#include
void foo(); // Function declaration without a definition
int main() {
foo(); // Call to undefined function
return 0;
}
< /code>
Интересно, что эта проблема возникает только с ошибками линкера. Ошибки компиляции отображаются правильно в консоли. < /P>
Вот пример ошибки компиляции, которая отображается правильно: < /p>
F:\Program\SimCSC\ProxyV2\main.cpp(10): error C2146: 语法错误: 缺少“;”(在标识符“QApplication”的前面) [F:\Program\SimCSC\ProxyV2\cmake-build-debug\ProxyV2.vcxproj]
Подробнее здесь: https://stackoverflow.com/questions/769 ... nvironment
Мобильная версия