Запрос Wherenull ничего не возвращает из сводной таблицы (laravel5.5)

Если вы не хотите перераспределять статические библиотеки с информацией об отладке, вам фактически не нужно объединять любые файлы PDB (или использовать /Z7 для встраивания информации об отладке).

Как упоминал @zhaorufei, при использовании /Zi каждый объектный файл содержит ссылку на свой файл PDB, который затем использует компоновщик.

Просто используйте /Fd чтобы дать каждому объекту уникальный файл PDB:

> cl -c foo.cpp -Fo:target/foo.obj -Fd:target/foo.pdb -Zi
> cl -c bar.cpp -Fo:target/bar.obj -Fd:target/bar.pdb -Zi

> strings target/foo.obj | grep pdb
D:\Dev\sample\target\foo.pdb
> strings target/bar.obj | grep pdb
D:\Dev\sample\target\bar.pdb

Это также имеет то преимущество, что оно работает вокруг проблем одновременного доступа к общим файлам PDB, упомянутым здесь здесь , поэтому вы можете параллельный шаг компиляции, как вы хотели.

Затем свяжите / архивируйте объектные файлы, как обычно. VC ++ уже внедряет различные типы информации в объектных файлах, чтобы передать их компоновщику, например, настройку ссылки времени выполнения и библиотеки зависимостей - путь к файлу PDB не отличается. Создание статической библиотеки из объектов не удаляет ссылки:

> lib -out:target/all.lib target/foo.obj target/bar.obj
> strings target/all.lib | grep pdb
D:\Dev\sample\target\bar.pdb
D:\Dev\sample\target\foo.pdb

При связывании этой библиотеки с исполняемым файлом или DLL компоновщик по-прежнему извлекает информацию об отладке из связанных PDB и добавляет ее в окончательный файл PDB.

Единственное предостережение, которое я вижу, это то, что путь всегда абсолютен, поэтому это может не сработать, если вы перемещаете файлы локально или на другую машину перед связыванием.

1
задан TheBAST 19 March 2019 в 06:57
поделиться