Ошибка компилятора
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Здравствуйте. Мой вопрос показывается довольно популярный среди сетей интернета. Но ответ я не могу найти. Ошибка в комплиляторе от Microsoft Visual Studio 2013. В коде ошибки не может быть, я специально взял самый простой код с классом. Ошибка такая, что-то сделал, а что-то, это файл с расширением obj. Остальное, например dll, exe, exp и другие не работают. Пишет нет разрешения файлов, что делать, кто сталкивался с такой проблемой?
Ничего не понял ((
Пожалуйста сформулируй вопрос менее сумбурно.
Покажи код, который вызывает ошибку.
Покажи оригинальное сообщение об ошибке.
Может и разберёмся...
Не происходит компиляция dll. Так же с exe, через консоль в Microsoft Visual Studio 2013
Ошибка: не разрешенные файлы : (кол-во)
Расширения такие как lib, exp, obj компилируются
Ошибку не показал, так как все понятно, и просто не было исходного кода
Нужно больше информации. Вы пишете какими-то обрывками сознания.
Приведите пример исходного кода, который не компилируется и текст ошибки компилятора.
На скриншоте выше вы запускаете
cl.exe
без необходимых параметров, на что он и ругается. Если cl.exe запускается графическим интерфейсом Visual Studio, то уточните тип проекта, который вы создаете (Пустой проект, консольное приложение или что-то иное).И выражайте пожалуйста свои мысли более конструктивно.
Код:
main1.cpp
Account.h
Account.cpp
Самый простой код
Пробелы наверху в первом коде, где подключаются библиотеку, это я тут начудил. Причины там нет
Похоже, что линкеру для сборки exe'шника не хватает файла Account.obj.
Имея Visual Studio, ты пользуешься для компиляции и сборки интерфейсом командной строки из каких соображений?
Если ты в IDE (интегрированной среде разработчика) правильно организуешь проект, то всё откомпилируется и соберётся без ошибок. (И без геморроя.)
Если же религия не позволяет пользоваться IDE, то в командных строках для компилятора и линкера указывай все необходимые параметры.
При максимально дефолтных настройках компилятора и линкера командные строки будут следующие:
Проверено с твоим кодом.
Файл obj компилируется без ошибок, так и lib и с Ассемблером
Так ехе я могу скопилировать, я не могу с помощью командной строки скомпилировать dll и подключить к exe
Так у вас функция
main
определена в программе. Как вы это собираетесь засунуть в DLL?А почему именно код main1.cpp должна быть в dll. Это не обязательно
DLL — это динамически подключаемый набор функций, а не автономно исполняемый модуль. В его коде не должно быть функции main. На этот «неразрешенный внешний символ» компилятор и ругается.
Сперва нужно скомпилить и слинковать DLL, потом положить его в $PATH или добавить директорию с программой в системную переменную $PATH.
После чего, компилировать основную программу, указав, какие DLL-ки ей использовать. Пример для gcc (только для shared-objects в linux, но суть одна и та же) — http://www.cprogramming.com/tutorial/shared-libraries-linux-gcc.html
Пример построения консольного приложения с использованием DLL (MS Visual Studio 2013): Walkthrough: Creating and Using a Dynamic Link Library (C++)
Там же, если немного покопаться можно найти практически всю информацию, касающуюся DLL.
По поводу того, где должна лежать DLL. Я могу ошибаться, но вроде алгоритм поиска следующий:
Т.е. в 90% случаев самодельную DLL логично держать в каталоге приложения. И геморроя меньше, и DLL hell не провоцировать.
Что может значить эта ошибка? расшифруйте, пожалуйста.
main.cpp: In function 'int main(int, char*)':
main.cpp:28:30: error: invalid conversion from 'int' to 'char' [-fpermissive]
In file included from main.cpp:7:0:
detail.h:12:2: error: initializing argument 1 of 'detail::detail(char, int)' [-fpermissive]
main.cpp:28:30: error: invalid conversion from 'const char' to 'int' [-fpermissive]
In file included from main.cpp:7:0:
detail.h:12:2: error: initializing argument 2 of 'detail::detail(char, int)' [-fpermissive]
main.cpp:29:29: warning: deprecated conversion from string constant to 'char' [-Wwrite-strings]
main.cpp:31:24: warning: deprecated conversion from string constant to 'char' [-Wwrite-strings]
main.cpp:32:24: warning: deprecated conversion from string constant to 'char' [-Wwrite-strings]
C:\Users\Виктория\Desktop\Makefile.win:28: recipe for target 'main.o' failed
mingw32-make.exe: *** [main.o] Error 1
Compilation failed after 0,67 seconds with errors