#visual-studio-2008 #linker #warnings
#visual-studio-2008 #компоновщик #предупреждения
Вопрос:
Во время компиляции сообщается только о предупреждениях. В настройках проекта флажок «Рассматривать предупреждения как ошибки» снят. Но .lib
файл не генерируется, и связывание завершается ошибкой. Ниже приведен мой журнал сборки. Пожалуйста, помогите.
1>------ Build started: Project: pcwscommon, Configuration: Release Win32 ------
1>Compiling...
1>stdafx.cpp
1>Compiling...
1>wsxmlvld.cpp
1>e:ws_nameeBizpowrmartsdkincludesdkcmn/ivector.hpp(49) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> e:Program FilesMicrosoft Visual Studio 9.0VCinclude../include/string.h(74) : see declaration of 'strcpy'
1>e:ws_nameebizpowrmartcommoncmnmiscpmn2s.hpp(364) : warning C4351: new behavior: elements of array 'PmI64Str::m_buf' will be default initialized
1>e:ws_nameebizpowrmartcommoncmnmiscpmtstring.hpp(280) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> e:Program FilesMicrosoft Visual Studio 9.0VCinclude../include/stdio.h(366) : see declaration of 'sprintf'
1> e:ws_nameebizpowrmartcommoncmnmiscpmtstring.hpp(298) : see reference to function template instantiation 'PM_LEN pmtFtoa<char>(double,CCC *,PM_BOOLEAN)' being compiled
1> with
1> [
1> CCC=char
1> ]
1>e:ws_nameebizpowrmartcommoncmnmiscpmtstring.hpp(292) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> e:Program FilesMicrosoft Visual Studio 9.0VCinclude../include/stdio.h(366) : see declaration of 'sprintf'
1>e:ws_nameebizpowrmartcommoncmnmiscpmtstring.hpp(240) : warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C conformant name: _stricmp. See online help for details.
1> e:Program FilesMicrosoft Visual Studio 9.0VCinclude../include/string.h(215) : see declaration of 'stricmp'
1> e:ws_nameeBizpowrmartcommoncmnmiscpmdate.hpp(715) : see reference to function template instantiation 'int pmtStricmpAscii<char>(const CCC *,const char *)' being compiled
1> with
1> [
1> CCC=char
1> ]
1>wsxmlreptbl.cpp
1>e:ws_nameebizpowrmartcommoncmnmiscpmn2s.hpp(364) : warning C4351: new behavior: elements of array 'PmI64Str::m_buf' will be default initialized
1>e:ws_nameeBizpowrmartsdkincludesdkcmn/ivector.hpp(49) : warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> e:Program FilesMicrosoft Visual Studio 9.0VCinclude../include/string.h(74) : see declaration of 'strcpy'
1>e:ws_nameebizpowrmartcommoncmnmiscpmtstring.hpp(280) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> e:Program FilesMicrosoft Visual Studio 9.0VCinclude../include/stdio.h(366) : see declaration of 'sprintf'
1> e:ws_nameebizpowrmartcommoncmnmiscpmtstring.hpp(298) : see reference to function template instantiation 'PM_LEN pmtFtoa<char>(double,CCC *,PM_BOOLEAN)' being compiled
1> with
1> [
1> CCC=char
1> ]
1>e:ws_nameebizpowrmartcommoncmnmiscpmtstring.hpp(292) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> e:Program FilesMicrosoft Visual Studio 9.0VCinclude../include/stdio.h(366) : see declaration of 'sprintf'
1>e:ws_nameebizpowrmartcommoncmnmiscpmtstring.hpp(240) : warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C conformant name: _stricmp. See online help for details.
1> e:Program FilesMicrosoft Visual Studio 9.0VCinclude../include/string.h(215) : see declaration of 'stricmp'
1> e:ws_nameeBizpowrmartcommoncmnmiscpmdate.hpp(715) : see reference to function template instantiation 'int pmtStricmpAscii<char>(const CCC *,const char *)' being compiled
1> with
1> [
1> CCC=char
1> ]
1>Generating Code...
1>Linking...
1>LINK : fatal error LNK1181: cannot open input file 'pmwscmn.lib'
1>Build log was saved at "file://e:ws_nameeBizmainpcwscommonReleaseBuildLog.htm"
1>pcwscommon - 1 error(s), 10 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Комментарии:
1. В каких проектах участвуют ваши? Что создает что / полагается на что? Что такое pmwscmn.lib? / какой проект его создает? Ваша ошибка ссылки связана с проектом pcwscommon, это отличается? Работает ли это в конфигурации отладки?
2. pcwscommon — это имя самого создаваемого проекта. Проект является одним из многих других проектов в решении, я выборочно создаю этот проект. Предполагается, что он генерируется. файл библиотеки. Отладочная сборка также завершается с той же ошибкой.
3. Ваш компоновщик сообщает, что не может найти входные данные ‘pmwscmn.lib’. Это необходимо для того, чтобы создать выходные данные из pcwscommon. Какой бы проект ни создавал ‘pmwscmn. lib’ либо еще не был запущен (возможно, у вас отсутствуют зависимости), либо произошел сбой, либо pmwscmn.lib является двоичным файлом, которого нет в вашем пути к библиотеке.
4. Вы правы. Существует еще один файл решения, который я должен создать, чтобы сгенерировать требуемый файл .lib. Спасибо.
Ответ №1:
Ваш компоновщик сообщает, что не может найти входные данные ‘pmwscmn.lib’.
Это необходимо для того, чтобы был собран вывод из pcwscommon.
Какой бы проект ни создавал ‘pmwscmn.либо lib’ еще не был запущен (возможно, у вас отсутствуют зависимости), либо произошел сбой, либо pmwscmn.lib является двоичным файлом, которого нет в вашем пути к библиотеке.