#visual-studio-2010 #unresolved-external #c -standard-library #lnk2019 #stdstring
#visual-studio-2010 #неразрешенный -внешний #c -стандартная библиотека #lnk2019 #stdstring
Вопрос:
Среда: Windows XP. Visual Studios 2010. Язык — C .
Я столкнулся со следующей ошибкой ссылки, и у меня закончились идеи, как исправить эту проблему. У меня есть проект (устройство CnD), который ссылается на 2 проекта (сообщения и углерод), контролируемые моей группой. Я попытался выполнить поиск свойств проекта между 3 проектами
enter tcp_driver.obj : error LNK2019: unresolved external symbol "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl toString(int)" (?toString@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z) referenced in function "protected: bool __thiscall Tcp_Driver::readMessage(void)" (?readMessage@Tcp_Driver@@IAE_NXZ)
Я считаю, что эта проблема связана с тем, что я не ссылаюсь на строку, которая находится в стандартной библиотеке C . Я просматривал свой список свойств снова и снова. Ниже приведены некоторые свойства, которые, по моему мнению, имеют решающее значение для этой проблемы.
Информация о свойствах устройства CnD:
- Тип конфигурации динамическая библиотека .dll
- Использование MFC Используйте MFC в общей библиотеке DLL
- Использование ALT без использования ALT
- Набор символов использует многобайтовый набор символов
- Библиотека времени выполнения многопоточная DLL (/MD)
- Дополнительные зависимости msvcprtd.lib, Carbon.библиотека, BUFFER_API.lib, BUFFER_FRAMEWORK.lib, Messages.lib
- Игнорировать все библиотеки по умолчанию Нет
Информация о свойствах сообщений:
- Статическая библиотека типа конфигурации (.lib)
- Использование MFC Используйте MFC в общей библиотеке DLL
- Использование ALT без использования ALT
- Набор символов Используйте набор символов Unicode
- Библиотека времени выполнения многопоточная DLL (/MD)
- Дополнительные зависимости
- Зависимости библиотеки ссылок отсутствуют
Информация о свойствах углерода:
- Статическая библиотека типа конфигурации (.lib)
- Использование MFC Используйте MFC в общей библиотеке DLL
- Использование ALT без использования ALT
- Набор символов Используйте набор символов Unicode
- Библиотека времени выполнения многопоточная DLL (/MD)
- Зависимости библиотеки ссылок отсутствуют
Мой вывод ссылки CnD:
1>------ Rebuild All started: Project: CnD_Device, Configuration: Debug Win32 ------
1> JDTC_Message.cpp
1>h:my.name_local_projectprojectemdofpcp_syspackagescnd_devicesrcproject_message.cpp(47): warning C4018: '<' : signed/unsigned mismatch
1>h:my.name_local_projectprojectemdofpcp_syspackagescnd_devicesrcproject_message.cpp(54): warning C4244: '=' : conversion from 'float' to 'UInt32', possible loss of data
1>h:my.name_local_projectprojectemdofpcp_syspackagescnd_devicesrcproject_message.cpp(82): warning C4244: '=' : conversion from 'UInt32' to 'float', possible loss of data
1> ComponentEntryDLL.cpp
1> CnD_Network_Driver.cpp
1> CnD_Message_Handler.cpp
1> CnD_Message_Factory.cpp
1> CnD_Heartbeat_Message.cpp
1> CnD_Device.cpp
1> _WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h)
1>h:my.name_local_projectprojectemdofpcp_syspackagescnd_devicesrccnd_device.cpp(61): warning C4101: 'e' : unreferenced local variable
1>h:my.name_local_projectprojectemdofpcp_syspackagescnd_devicesrccnd_device.cpp(120): warning C4101: 'e' : unreferenced local variable
1> MonitoringData.cpp
1> tcp_driver.cpp
1> _WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h)
1> Generating Code...
1>h:my.name_local_projectprojectemdofpcp_syspackagescnd_devicesrccnd_message_factory.cpp(59): warning C4715: 'CnD_Message_Factory::createMessage' : not all control paths return a value
1>
1> Searching libraries
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VClibmsvcprtd.lib:
1> Searching ............CarbondebuglibCarbon.lib:
1> Searching ..............EMDBUFFER_SDKLibsBUFFER_API.lib:
1> Searching ..............EMDBUFFER_SDKLibsBUFFER_Framework.lib:
1> Searching ............MessagesDebuglibMessages.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VCatlmfclibmfc100d.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VCatlmfclibmfcs100d.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VClibmsvcrtd.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibkernel32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibuser32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibgdi32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibmsimg32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibcomdlg32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibwinspool.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibadvapi32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibshell32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibcomctl32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibshlwapi.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibuuid.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VCatlmfclibatlsd.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibole32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Aliboleaut32.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VClibMSVCRT.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VClibOLDNAMES.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VCatlmfclibmfc100ud.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VCatlmfclibmfcs100ud.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VClibmsvcprt.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibwininet.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibws2_32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibmswsock.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VClibmsvcprtd.lib:
1> Searching ............CarbondebuglibCarbon.lib:
1> Searching ..............EMDBUFFER_SDKLibsBUFFER_API.lib:
1> Searching ..............EMDBUFFER_SDKLibsBUFFER_Framework.lib:
1> Searching ............MessagesDebuglibMessages.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VCatlmfclibmfc100d.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VCatlmfclibmfcs100d.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VClibmsvcrtd.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibkernel32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibuser32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibgdi32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibmsimg32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibcomdlg32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibwinspool.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibadvapi32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibshell32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibcomctl32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibshlwapi.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibuuid.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VCatlmfclibatlsd.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibole32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Aliboleaut32.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VClibMSVCRT.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VClibOLDNAMES.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VCatlmfclibmfc100ud.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VCatlmfclibmfcs100ud.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VClibmsvcprt.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibwininet.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibws2_32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibmswsock.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VClibmsvcprtd.lib:
1> Searching ............CarbondebuglibCarbon.lib:
1> Searching ..............EMDBUFFER_SDKLibsBUFFER_API.lib:
1> Searching ..............EMDBUFFER_SDKLibsBUFFER_Framework.lib:
1> Searching ............MessagesDebuglibMessages.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VCatlmfclibmfc100d.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VCatlmfclibmfcs100d.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VClibmsvcrtd.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibkernel32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibuser32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibgdi32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibmsimg32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibcomdlg32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibwinspool.lib:
1>
1> Finished searching libraries
1> Creating library H:my.name_local_projectprojectEMDOFPCP_SYSpackagesCnD_DevicebuildCnD_DeviceDebugCnD_Device.lib and object H:my.name_local_projectprojectEMDOFPCP_SYSpackagesCnD_DevicebuildCnD_DeviceDebugCnD_Device.exp
1>
1> Searching libraries
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VClibmsvcprtd.lib:
1> Searching ............CarbondebuglibCarbon.lib:
1> Searching ..............EMDBUFFER_SDKLibsBUFFER_API.lib:
1> Searching ..............EMDBUFFER_SDKLibsBUFFER_Framework.lib:
1> Searching ............MessagesDebuglibMessages.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VCatlmfclibmfc100d.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VCatlmfclibmfcs100d.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VClibmsvcrtd.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibkernel32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibuser32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibgdi32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibmsimg32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibcomdlg32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibwinspool.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibadvapi32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibshell32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibcomctl32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibshlwapi.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibuuid.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VCatlmfclibatlsd.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibole32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Aliboleaut32.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VClibMSVCRT.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VClibOLDNAMES.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VCatlmfclibmfc100ud.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VCatlmfclibmfcs100ud.lib:
1> Searching C:Program Files (x86)Microsoft Visual Studio 10.0VClibmsvcprt.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibwininet.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibws2_32.lib:
1> Searching C:Program Files (x86)Microsoft SDKsWindowsv7.0Alibmswsock.lib:
1>
1> Finished searching libraries
1>LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
1>LINK : warning LNK4098: defaultlib 'mfc100ud.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
1>LINK : warning LNK4098: defaultlib 'mfcs100ud.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
1>tcp_driver.obj : error LNK2019: unresolved external symbol "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl toString(int)" (?toString@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z) referenced in function "protected: bool __thiscall Tcp_Driver::readMessage(void)" (?readMessage@Tcp_Driver@@IAE_NXZ)
1>H:my.name_local_projectprojectEMDOFPCP_SYSpackagesCnD_DevicebuildCnD_DeviceDebugCnD_Device.dll : fatal error LNK1120: 1 unresolved externals
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
Комментарии:
1.Некоторые ссылки по теме: support.microsoft.com/kb/154419 msdn.microsoft.com/en-us/library/ee258870.aspx
Ответ №1:
Я нашел свою проблему. Я бы удалил это; однако я обнаружил, что эта ошибка ссылки является распространенной, но никогда не имеет хороших общих решений — помимо изменений свойств проекта.
Источник моей проблемы: Carbon и Messages определили Int32 как длинный.
CnD определил Int32 как int.
Неразрешенный внешний символ, вызывающий ошибку, был
extern std::string toString(Int32 v);
Таким образом, CnD ожидал, что функция будет отличаться от той, которую определили Carbon и Messages.