2015-12-03 2 views
1

Есть ли способ диагностировать, что вызывает проблемы с компоновщиками?Диагностика Visual C++ linker

У меня всегда возникали проблемы со связыванием моего проекта с проектами Wt (webtoolkit.eu). В начале, когда мой проект был небольшим, компоновщик работал над настройками по умолчанию.

Однако, когда мой проект начал увеличиваться, компоновщик будет работать в течение нескольких часов, но процесс не завершится или не сообщит о какой-либо ошибке. Я столкнулся с проблемой, отключив инкрементный компоновщик, после чего компоновщик работал отлично.

Теперь я разделил свой проект на 3 проекта CMake (aka target). 2 - статические библиотеки, а 3 - исполняемая цель. Эти 3 проекта дополнительно связывают с проектами Wt статически. Однако процесс компоновщика никогда не завершает или не сообщает о каких-либо ошибках как для инкрементной, так и для неинкрементной настройки.

Дополнительная Informaton: успешно

Ссылки на режиме выпуска

Использование/bigobj как компилятор выдает ошибку без него

компоновщика командной строки копируются из исполняемого проекта свойства-> Linker- > Командная строка

Режим деблокирования (ссылки успешно)

/OUT:"D:\Programming\WebWidgets\build\src\WWTestApp\Release\WWTestApp.exe" /MANIFEST /NXCOMPAT /PDB:"D:/Programming/WebWidgets/build/src/WWTestApp/Release/WWTestApp.pdb" /DYNAMICBASE "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "comdlg32.lib" "advapi32.lib" "..\WebWidgets\Release\WebWidgets.lib" "..\DboInstaller\Release\DboInstaller.lib" "C:\Program Files\WT\lib\wt.lib" "C:\Program Files\WT\lib\wthttp.lib" "C:\Program Files\WT\lib\wtdbo.lib" "C:\Program Files\WT\lib\wtdbosqlite3.lib" "C:\Program Files\WT\lib\wtdbomysql.lib" "C:\Program Files\MySQL\MySQL Connector C 6.1\lib\libmysql.lib" /IMPLIB:"D:/Programming/WebWidgets/build/src/WWTestApp/Release/WWTestApp.lib" /MACHINE:X64 /INCREMENTAL:NO /PGD:"D:\Programming\WebWidgets\build\src\WWTestApp\Release\WWTestApp.pgd" /SUBSYSTEM:CONSOLE /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"WWTestApp.dir\Release\WWTestApp.exe.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /LIBPATH:"C:/Boost/lib" /LIBPATH:"C:/Boost/lib/Release" /TLBID:1 

RelWithDebInfo (ссылки успешно)

/OUT:"D:\Programming\WebWidgets\build\src\WWTestApp\RelWithDebInfo\WWTestApp.exe" /MANIFEST /NXCOMPAT /PDB:"D:/Programming/WebWidgets/build/src/WWTestApp/RelWithDebInfo/WWTestApp.pdb" /DYNAMICBASE "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "comdlg32.lib" "advapi32.lib" "..\WebWidgets\RelWithDebInfo\WebWidgets.lib" "..\DboInstaller\RelWithDebInfo\DboInstaller.lib" "C:\Program Files\WT\lib\wt.lib" "C:\Program Files\WT\lib\wthttp.lib" "C:\Program Files\WT\lib\wtdbo.lib" "C:\Program Files\WT\lib\wtdbosqlite3.lib" "C:\Program Files\WT\lib\wtdbomysql.lib" "C:\Program Files\MySQL\MySQL Connector C 6.1\lib\libmysql.lib" /IMPLIB:"D:/Programming/WebWidgets/build/src/WWTestApp/RelWithDebInfo/WWTestApp.lib" /DEBUG /MACHINE:X64 /INCREMENTAL /PGD:"D:\Programming\WebWidgets\build\src\WWTestApp\RelWithDebInfo\WWTestApp.pgd" /SUBSYSTEM:CONSOLE /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"WWTestApp.dir\RelWithDebInfo\WWTestApp.exe.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /LIBPATH:"C:/Boost/lib" /LIBPATH:"C:/Boost/lib/RelWithDebInfo" /TLBID:1 

Режим отладки (не ссылка)

/OUT:"D:\Programming\WebWidgets\build\src\WWTestApp\Debug\WWTestApp.exe" /MANIFEST /NXCOMPAT /PDB:"D:/Programming/WebWidgets/build/src/WWTestApp/Debug/WWTestApp.pdb" /DYNAMICBASE "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "comdlg32.lib" "advapi32.lib" "..\WebWidgets\Debug\WebWidgets.lib" "..\DboInstaller\Debug\DboInstaller.lib" "C:\Program Files\WT\lib\wtd.lib" "C:\Program Files\WT\lib\wthttpd.lib" "C:\Program Files\WT\lib\wtdbod.lib" "C:\Program Files\WT\lib\wtdbosqlite3d.lib" "C:\Program Files\WT\lib\wtdbomysqld.lib" "C:\Program Files\MySQL\MySQL Connector C 6.1\lib\libmysql.lib" /IMPLIB:"D:/Programming/WebWidgets/build/src/WWTestApp/Debug/WWTestApp.lib" /DEBUG /MACHINE:X64 /INCREMENTAL:NO /PGD:"D:\Programming\WebWidgets\build\src\WWTestApp\Debug\WWTestApp.pgd" /SUBSYSTEM:CONSOLE /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"WWTestApp.dir\Debug\WWTestApp.exe.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /LIBPATH:"C:/Boost/lib" /LIBPATH:"C:/Boost/lib/Debug" /TLBID:1 
+0

Вы планируете жить на нелокальном диске? Или вы работаете с ограниченным пространством? Оба могут значительно замедлить процесс компиляции и связывания для VS. –

+0

@ AnonMail Эй, нет, у меня достаточно места, и это на моем локальном диске. И проблема не в том, что она медленная ... Она никогда не заканчивается –

+0

Единственное, что я могу придумать, это компоновщик как-то иссякнут из памяти. –

ответ

0

Я решил эту проблему, заставляя Visual Studio использовать 64-разрядную версию инструментарием,. Скорее всего, это как-то связано с тем, что компоновщик исчерпал адресное пространство.

Смежные вопросы