Как я разрешаю ошибку LNK1104 с Библиотекой Файловой системы Повышения в MSCV?

Итак, в конце концов я нашел Правильное решение для себя, так что спасибо за поддержку

var locations = [
  ['Yanbu Saudi Arabia', 24.091328, 38.037067, 1],
  ['Yanbu Saudi Arabia', 24.005421, 38.197395, 2]
];

var map = new google.maps.Map(document.getElementById('tm-map'), {
  zoom: 10,
  center: new google.maps.LatLng(24.005421, 38.197395),
  mapTypeId: google.maps.MapTypeId.ROADMAP
});

var infowindow = new google.maps.InfoWindow();

var marker, i;
var markers = [];

for (i = 0; i < locations.length; i++) {  
  marker = new google.maps.Marker({
    position: new google.maps.LatLng(locations[i][1], locations[i][2]),
    map: map
  });

  markers.push(marker);

  google.maps.event.addListener(marker, 'click', (function(marker, i) {
    return function() {
      infowindow.setContent(locations[i][0]);
      infowindow.open(map, marker);
    }
  })(marker, i));
}

console.log(markers[0]);
10
задан Trevor Hickey 5 November 2015 в 14:35
поделиться

5 ответов

Ответ Ferruccio содержит большую часть понимания. Однако Pukku заставил меня понять свою ошибку. Я отправляю свой собственный ответ для предоставления полного объяснения. Как Ferruccio объяснил, Файловая система полагается на две библиотеки. Для меня это:

  • libboost_system-vc90-mt-gd-1_37.lib
  • libboost_filesystem-vc90-mt-gd-1_37.lib

Я, должно быть, не заметил это, когда я предоставил каталог для libboost_filesystem-vc90-mt-gd-1_37.lib, вывод ошибок, измененный от

fatal error LNK1104: cannot open file 'libboost_filesystem-vc90-mt-gd-1_37.lib'

кому:

fatal error LNK1104: cannot open file 'libboost_system-vc90-mt-gd-1_37.lib'

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

bjam --build-dir="C:\Program Files\boost\build-boost" --toolset=msvc --build-type=complete stage

Причины bjam для размещения дополнительного каталога, точно названного этапа, в boost_1_37_0 каталоге. Эта папка содержит папку, названную / lib, который имеет копии всех библиотечных файлов в одном месте. Это удобно для Visual C++, потому что можно предоставить его этот единственный каталог, и он будет заботиться обо всех зависимостях.

8
ответ дан 3 December 2019 в 20:44
поделиться

повышение:: файловая система зависит от повышения:: система, таким образом, Вам нужны оба пути.

Часть проблемы, Вы используете повышение, освобождает из каталогов сборки вместо каталога установки (процесс сборки повышения должен создать обоих). Каталог установки/lib имеет все освобождение, таким образом, только необходимо указать один путь.

Процесс сборки повышения создает каждую библиотеку в своем собственном каталоге. В конце это копирует все те .lib файлы в один общий каталог lib.

Так как Вы не указывали каталог установки как часть Вашей команды сборки (с - префикс =...), я полагаю, что значение по умолчанию является C:\Boost. Проверьте, чтобы видеть, там ли тот каталог, и раз так используйте повышение-1_37 C:\boost\include\ для Вашего включать путь и C:\boost\lib для Вашего пути к библиотеке.

3
ответ дан 3 December 2019 в 20:44
поделиться

Ошибка, которую Вы отправили, жалуется на файл libboost_system-vc90-mt-gd-1_37.lib, но в каталоге Вы имеете только libboost_filesystem-vc90-mt-gd-1_37.lib, правильно?

Ищите libboost_system-vc90-mt-gd-1_37.lib. При нахождении его добавьте соответствующий каталог к пути поиска библиотеки. Если Вы не находите его, посмотрите, есть ли у Вас boost_system-vc90-mt-gd-1_37.lib вместо этого (как, я делаю), и попытайтесь копировать это в желаемое имя файла.

1
ответ дан 3 December 2019 в 20:44
поделиться

bjam командная строка должна была создать все версии всех библиотек. Однако, когда Вы создаете с

bjam --build-dir="C:\Program Files\boost\build-boost" --toolset=msvc --build-type=complete stage

(отметьте stage в конце) все библиотеки копируются в общее, освобождает / папку, так, чтобы автосоединение MSVC функции работало, когда Вы только добавляете, что это освобождает / папку к Вашему пути к библиотеке.

Я не знаю если bjam без stage все еще копии все те файлы к единственной папке. В противном случае выполните такой stage сборка, чтобы сделать это. Если они, ну, в общем, сожалеют, конфигурация кажется корректной, возможно, незначительная опечатка где-нибудь?

1
ответ дан 3 December 2019 в 20:44
поделиться

У меня была та же проблема, что вам нужно сделать, это добавить каталог «lib» под папкой boost верхнего уровня в путь к библиотеке в Visual C ++.

Это определенно решило проблему для меня.

1
ответ дан 3 December 2019 в 20:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: