Makefiles в Microsoft Visual Studio 2010 - PullRequest
1 голос
/ 03 июля 2011

Я получаю некоторые ошибки компоновки во время компиляции C-проекта в Microsoft Visual Studio 2010. Я получаю следующие ошибки:

 error LNK2019: unresolved external symbol _CreateRelation referenced in function _main

CreateRelation - одна из функций в моем проекте.Вот мои вопросы:

  1. Я думаю, что это проблема некоторых зависимостей. Как бы я установил правило этих зависимостей в IDE?

  2. не могли бы выСкажите, пожалуйста, всегда ли можно построить проект и установить правило связывания, насколько оно больше, без использования make-файла?

[EDIT]

           relation.h

           void createRelation(LIST);

            mainfile.c
            #include relation.h
            #include xyz.h
             .
             .
             .


            int main(){
            LIST Relation1;
            some codes //
            createRelation(Relation1);
            some code // 

                    }

Функция creatRelation() определена в realation.h.

РЕДАКТИРОВАТЬ 2

          In the function containing main

1 Ответ

2 голосов
/ 03 июля 2011

Есть несколько способов установить зависимости для процесса сборки.

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

Еще одна изящная особенность VS2010 - это листы свойств.В старых версиях VS вам приходилось указывать компилятору путь включения и путь к lib для каждого проекта.Теперь вы можете создавать таблицы свойств для каждой используемой вами библиотеки, а затем просто добавлять их в свой проект.Таким образом, вам нужно создать лист свойств только один раз и использовать его во многих проектах.

Так что, если код находится в другом проекте, который не является подпроектом, вам нужно установить путь к lib и включитьпуть через эти списки свойств.Вы можете отобразить листы свойств, используемые вашим проектом, нажав Вид-> Дополнительные окна-> Диспетчер свойств

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

Надеюсь, это поможет

- правка -

Поскольку вы сказали, что реализация находится в том же файле, что и основная функция, я подозреваю, что подпись объявленной и определенной функции не совпадает.Вы получаете какие-либо предупреждения о неявном объявлении функции?

Это ошибка копирования-вставки?CreateRealtion (х);vs. CreateRelation (x);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...