Индексиране на източника за статични библиотеки. Изпълнение

Задачите са: 1. изграждане на статични библиотеки на една машина за изграждане 2. изграждане на динамична библиотека (свързване на статични библиотеки от стъпка 1) на друга машина за изграждане. Втората машина няма достъп до контрол на източника на статични библиотеки.

Създавам static_library.lib с информация за отстраняване на грешки (/Zi). PDB файлът е създаден. Но не е вградил пълните пътища до изходните файлове. Така че използвам P4Index.cmd с превключвателя /Save: P4Index.cmd -source="c:\project1\source" -symbols="c:\project1\out_Win32\Debug" /Save=c:/project1/srcinfo

Той създаде файлове: p4_files.dat, servers.dat Както виждам p4_files.dat има двойки: име на файл и път на Perforce.

След това изграждам dynamic_library.dll и свързвам static_library.lib. Но има грешка, когато стартирам P4Index.cmd с превключвателя /Load:

ssindex.cmd [ГРЕШКА] P4: Не може да се намери c:/project1/srcinfo\sd_files.dat в @INC ......

Какво представлява файлът sd_files.dat?


person cpp_fanatic    schedule 09.12.2016    source източник


Отговори (1)


Разглеждайки файла p4.pm, който се намира в същата папка като P4Index.cmd, изглежда, че това всъщност може да е грешка в кода.

sub LoadFileInfo {
    my $self = shift;
    my $dir  = shift;

    if ( -e "$dir\\p4_files.dat" ) {
        our $FileData1;
        require "$dir\\sd_files.dat";
        $$self{'FILE_LOOKUP_TABLE'} = $FileData1;
    } else {
        ::status_message("No Perforce information saved in $dir.\n");
    }

    return();
}

Изглежда, че редът за изискване всъщност трябва да използва p4_files.dat вместо sd_files.dat.

От четене на документация на Microsoft изглежда, че sd е абстрактното име по подразбиране, което се използва за препратка към мениджъра за контрол на източника и така sd_files.dat е абстрактното име за файла dat.

Горните ми подозрения изглежда се потвърждават от другите pm файлове за контрол на източника (cvs, svn, tfs и vss), всичките или нямат ред за изискване, или използват името на файла с варианта за контрол на източника за него.

Тествах горната промяна и данните се зареждат без грешка.

person Alistair White    schedule 30.11.2017