Предположим, у вас есть большой проект, написанный на c ++, который содержит тысячу файлов .cpp и тысячу файлов .h. И давайте предположим, что проект также зависит от десяти статических библиотек. Скажем, мы работаем над Windows, и мы строим наш проект в Visual Studio 20xx. Когда вы нажимаете Ctrl + F7 Visual Studio, чтобы начать компиляцию всего решения (предположим, что у нас есть только один проект в решении)
В чем смысл компиляции?
Второй этап компиляции выполняется Linker.Linker должен объединить весь объектный файл и построить окончательно вывод (который может быть исполняемым или библиотекой)
Шаги при связывании проекта
error LNK2001: unresolved external symbol "void __cdecl foo(void)" (?foo@@YAXXZ)
Наблюдение
Как решить эту ошибку
Ошибка времени компилятора:
Ошибка времени компоновщика
#pragma once
, чтобы компилятор не включал один заголовок если он уже был включен в текущий .cpp, который скомпилирован Краткий ответ: вы можете попробовать вставить ссылки на файлы SVG. Для элементов <object>
и <iframe>
используйте:
e.parentElement.replaceChild(e.contentDocument.documentElement.cloneNode(true), e);
... где e
является ссылочным элементом. Если вам абсолютно необходим элемент <embed>
, измените .contentDocument
в приведенном выше коде на .getSVGDocument()
(требуются скобки). Обратите внимание, однако, что .getSVGDocument()
теперь не рекомендуется и поэтому не рекомендуется, но уже рекомендуется использовать <object>
или <iframe>
вместо <embed>
в любом случае.
Для получения более полного ответа см. мой другой ответ SO по этому вопросу .
Я полагаю, что в IE9 вы можете использовать элемент <iframe>
для загрузки SVG, и в этом случае вы можете получить доступ к свойству contentDocument
, но с предыдущими версиями IE вам может быть не повезло. (Другие браузеры должны позволить вам использовать contentDocument
с <embed>
и <object>
.)
Пробовали ли вы с & lt; object & gt; элемент вместо этого? (атрибут данных вместо src)
Используйте .getSVGDocument()
. Это работает для <embed>
, <object>
и <iframe>
:
document.getElementById('svgsource').getSVGDocument()
Для <object>
или <iframe>
вы также можете использовать .contentDocument
:
document.getElementById('svgsource').contentDocument
Для IE7 или IE8 я считаю, что вам не повезло.