Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > LNK1104 |
Автор: Dimkostav 20.1.2009, 10:07 |
Здравствуйте. Помогите пожалуйста разобраться, ибо я новичок в этом не лёгком деле. Проблемма вот в чём: Пишу клиентское приложение для PostgreSQL, для этого использую библиотеку wxWidgets. После того, как DialogBlocks сгенерировал код для форм добавляю файлы с расширениями cpp, h, rc в пустой проект (MS Visual Studio 6.0). Прописал необходимые пути для файлов wxWidgets, подключил необходимые библиотеки. После компиляции (Release) выдаёт следующее: LINK: fatal error LNK1104: cannot open file "Release/test.exe" Error executing link.exe test.exe - 1 error(s), 0 warning(s) |
Автор: Lazin 20.1.2009, 10:19 |
ты пробовал включить и выключить? |
Автор: Rickert 20.1.2009, 10:21 |
Dimkostav, посмотри, в папке проекта, подпапке Release, есть файл "test.exe", после компиляции? |
Автор: Lazin 20.1.2009, 10:21 | ||
|
Автор: Dimkostav 20.1.2009, 10:30 | ||
да, в папке Release файл "test.exe" есть. От туда тоже не запускается. И удалить "test.exe" не получется. Пишет ошибку. |
Автор: Rickert 20.1.2009, 10:38 |
Так с ходу и не скажешь. Перезагрузи машину чтоли ![]() |
Автор: Dimkostav 20.1.2009, 11:43 | ||
Не, это не помогает |
Автор: xvr 20.1.2009, 11:51 | ||||
Перезагрузи машину, затем удали test.exe. Если не получается - запусти проверку диска, похоже твой test.exe 'немного' битый ![]() |
Автор: jonie 20.1.2009, 18:13 |
как вариант может быть он немного действительно занят (например антивирусом или вообще запущенный). есть тулза unlocker покажет лоченые хендлы... |
Автор: Dimkostav 20.1.2009, 18:43 |
Всем большое спасибо! Буду пробывать. |
Автор: Dimkostav 21.1.2009, 10:34 |
Не, не катит. Всё то же самое выдаёт... ![]() Пробывал и антивир отключать, и удалял экзешник после перезагрузки и всё то же... После запуска экзешника появляется одноимённый процесс, поэтому потом не получается удалить. |
Автор: Lazin 21.1.2009, 11:06 |
после запуска экзешников, иногда запускаются одноименные процессы, так-уж заведено, что-бы что-то делать с экзэшниом, нужно завершить одноименный процесс ![]() |
Автор: Dimkostav 21.1.2009, 11:18 | ||
Всё это ясно. Как сделать, что бы помимо процесса ещё и прогрмма запускалась? |
Автор: xvr 21.1.2009, 12:16 | ||||
Я открою тебе великую тайну - этот процесс и есть твоя программа ![]() А еще я хочу донести до тебя откровение свыше - есть такая ВЕЩЬ, называется дебагер, с его помощью можно творить чудеса, например узнать, почему твой процесс так и не превратился в 'программу' (я так понимаю не появился GUI ?) ![]() |
Автор: Rickert 21.1.2009, 12:18 |
xvr, у него эта бага в релиз версии. |
Автор: Dimkostav 21.1.2009, 12:23 | ||||||
да, GUI не появился, именно так... А процесс висит... Как тут может помочь дебаггер? |
Автор: Dimkostav 21.1.2009, 12:48 |
Запустил дебаггер. Жму F10 (Step Over). Застревает на строке: 0051C9CF call 00402 B90 Процесс висит. А дальше-то что? |
Автор: xvr 21.1.2009, 13:08 | ||
Сначала нужно откомпилить в Debug версии (Build->Set Active Configuration, F7) Затем запустить (F5). Когда повиснет - прервать (Ctrl-Break, или через меню). Потом смотришь, где оно стоит и почему. Да, перед тем, как прерывать, нужно убедится, что оно действительно зациклилось - процесс должен есть время CPU. Если у него около 0%, то скорее всего GUI просто не показывается и нужно смотреть исходные тексты инициализации. |
Автор: vinter 21.1.2009, 13:14 |
так никто же не мешает сменить цель |
Автор: Dimkostav 21.1.2009, 14:10 | ||||
Вот откомпилил в Debug. Появилась ещё проблемма одна: catalog.obj : error LNK2001: unresolved external symbol "void __cdecl wxOnAssert(char const *,int,char const *,char const *,char const *)" (?wxOnAssert@@YAXPBDH000@Z) main.obj : error LNK2001: unresolved external symbol "void __cdecl wxOnAssert(char const *,int,char const *,char const *,char const *)" (?wxOnAssert@@YAXPBDH000@Z) uchetapp.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall wxAppConsole::OnAssert(char const *,int,char const *,char const *)" (?OnAssert@wxAppConsole@@UAEXPBDH00@Z) uchetapp.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall wxAppConsole::OnAssertFailure(char const *,int,char const *,char const *,char const *)" (?OnAssertFailure@wxAppConsole@@UAEXPBDH000@Z) Debug/test.exe : fatal error LNK1120: 3 unresolved externals Error executing link.exe. test.exe - 5 error(s), 0 warning(s) Что с этим-то делать? ![]() |
Автор: SerpentVV 21.1.2009, 14:56 |
А это похоже на то, что библиотека не подключена или как-то неправильно подключена. Или библиотека левая - линкер не находит объектных модулей указанных функций. |
Автор: Dimkostav 21.1.2009, 15:41 | ||||
Ну а может вместо этого аццкого дебагинка и проблемм с билиотеками посмотреть тексты инициализации? Потому что при компиляции в Release загрузка цп на процессе "test.exe" 0%. Подскажи пожалуйста, куды именно смотреть, что искать? Код-то я не руками пока писал, его DialogBlocks сгенерировал... Тут конечно есть ещё один warning C4005: 'ID_LISTCTRL1' : macro redefination. При том, что этот ListCtrl должен быть на самой первой форме. Как думаете, из-за него что ли может не появляться весь GUI? |
Автор: xvr 21.1.2009, 18:53 |
Спроси тутhttp://forum.vingrad.ru/forum/c-c++QT-gtk-wxWidgets.html |
Автор: Dimkostav 21.1.2009, 19:00 |
Всем большое спасибо! Многое извлёк из этой проблеммы. Буду разбираться дальше ![]() |