Я только что перешел с Visual Studio 2008 на Visual Studio 2010, и один из моих проектов теперь получает ошибку компоновщика:
ССЫЛКА: фатальная ошибка LNK1104: невозможно открыть файл 'libboost_filesystem-vc90-mt-gd-1_46_1.lib '
Я перестроил boost и вижу библиотеки vc10 в папке lib, но не могу понять, почему / как она все еще ссылается на библиотеки vc90?Я проверил свойства компоновщика и указываю на правильную папку (то есть на папку библиотек vc10).В разделе ввода я не указываю библиотеку, поэтому я не знаю, как она получила ссылку на библиотеку vc90.
Кто-нибудь знает, каково решение этой проблемы?
Обновление
Команда сборки, которую я использовал для сборки boost:
bjam --build-dir = c: \ boost --build-type = complete --with-filesystem--toolset = msvc address-model = 64 stage
Это автоматически привело к следующему выводу (среди прочего):
stage \ lib \ boost_filesystem-vc100-mt-1_46_1.lib
Командная строка
Компоновщик:
/ OUT: "bin \ x64 \ Debug \ NEST2.dll" / INCREMENTAL /NOLOGO / LIBPATH: "C: \ Users \ USER \ Desktop \ sandbox \ boost_1_46_1 \ bin \ x64 \ lib" /LIBPATH:"C:\Users\USER\Desktop\sandbox\db-5.1.25\build_windows\x64\Release"/ DLL" ws2_32.lib "" advapi32.lib "" libdb51.lib "" kernel32.lib "" user32.lib "" gdi32.lib "" winspool.lib "" comdlg32.lib "" shell32.lib "" ole32.lib "" oleaut32.lib "" uuid.lib "" odbc32.lib "" odbccp32.lib"/ MANIFEST /ManifestFile:"tmp\x64\Debug\NEST2.dll.intermediate.manifest" / ALLOWISOLATION / MANIFESTUAC: "level = 'asInvoker' uiAccess = 'false'" / DEBUG / PDB: "C: \ dev \ app\ NEST2 \ bin \ x64 \ Debug \ NEST2.pdb "/ ASSEMBLYDEBUG / SUBSYSTEM: WINDOWS /PGD:"C:\dev\app\NEST2\bin\x64\Debug\NEST2.pgd" / TLBID: 1 / DYNAMICBASE / NXCOMPAT/ MACHINE: X64 / ERRORREPORT: QUEUE
Компилятор:
/ I "C: \ Users \ USER \ Desktop \ sandbox \ boost_1_46_1" / I "C: \Пользователи \ USER \ Desktop \ sandbox \ db-5.1.25 \ build_windows "/ Zi / nologo / W3 / WX- / Od / Ot / D" WIN32 "/ D" _WIN64 "/ D" _DEBUG "/ D" _WINDOWS "/D "_USRDLL" / D "NEST2_EXPORTS" / D "_HAS_ITERATOR_DEBUGGING = 0" / D "__SECURE _SCL = 0" / D "_WINDLL" / D "_UNICODE" / D "UNICODE" / Gm- / EHsc / MDd / GS / fp: точный / Zc: wchar_t / Zc: forScope /Fp"tmp\x64\Debug\NEST2.pch "/ Fa" tmp \ x64 \ Debug \ "/ Fo" tmp \ x64 \ Debug \ "/ Fd" tmp \ x64 \Debug \ vc100.pdb "/ Gd / errorReport: queue
Update 2.0
1>------ Build started: Project: NEST2, Configuration: Debug x64 ------
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.Targets(1200,9): warning : The referenced project '{FD045D60-ABAD-4A6C-9794-9BFB085FC3E7}' does not exist.
1>
1> Starting pass 1
1> Processed /DEFAULTLIB:msvcprtd
1> Processed /DEFAULTLIB:MSVCRTD
1> Processed /DEFAULTLIB:OLDNAMES
1> Processed /DEFAULTLIB:libboost_filesystem-vc90-mt-gd-1_46_1.lib // <--- Here it is
1> Processed /DEFAULTLIB:libboost_system-vc90-mt-gd-1_46_1.lib // <--- and here!
1> Processed /DEFAULTLIB:uuid.lib
Теперь, если бы я только мог понять, почему он ссылается на неправильную библиотеку!