Нерешенный внешний символ - PullRequest
0 голосов
/ 23 августа 2011

Помогите мне, ребята, я очень долго искал.

Я использую Visual Studio 2010, и я попытался включить внешнюю библиотеку, но я получил неразрешенную внешнюю ошибку.

Внешний проект состоит из файлов следующим образом

backend.cpp
//some functions 
frontend.cpp
//some functions
header.h

Я строю этот проект с использованием SCons, затем включаю в проект файл .lib, ссылаюсь на его путь и копирую .hфайл в каталог msvc.

VS, похоже, обращается к функциям в backend.cpp (из автозаполнения) и читает их, но когда я запускаю проект, он говорит, что существует неразрешенная внешняя @ вызываемая функция

Ответы [ 2 ]

2 голосов
/ 23 августа 2011

Я не эксперт по Visual Studio, но я полагаю, что возможность автоматического завершения вашего кода связана с тем, что он находит заголовки вашего исходного кода.

Неразрешенный внешний означает, что компилятор может 'найти объектные файлы в процессе связывания.Это может означать, что вы не смогли правильно добавить файлы lib или что у вас отсутствует какой-либо файл .cpp.

1 голос
/ 23 августа 2011

Это может произойти по разным причинам. Но все они оказываются одним из следующих:

  • Вы не связываете правильный файл .lib.
  • Имя символа, которое вы используете в своей программе, не совпадает с тем, которое указано в .lib.

Первый достаточно легко проверить, поэтому, пожалуйста, проверьте его дважды.

Второй хитрее. Имя символа, используемое в вашей программе, выводится в сообщении об ошибке «неразрешенный внешний символ abc » или что-либо еще. Доступные в библиотеке символы могут быть перечислены с помощью команды: dumpbin /all name.lib.

Если вы не можете найти проблему, пожалуйста, опубликуйте точную ошибку, которую вы получаете, и выходные данные программы dumpbin.

...