Страница 1 из 1
помогите настроить везуальную студею 8
Добавлено: 2010-06-20 22:34:45
dekloper
не пойму в чем причина
компиляция простого "хелловорда" приводит к ошибкам линковки
примеры из мсдн-а также приводят к ошибкам вида
Код: Выделить всё
srv.c
Microsoft (R) Incremental Linker Version 9.00.21022.08
Copyright (C) Microsoft Corporation. All rights reserved.
/out:srv.exe
srv.obj
srv.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__shutdown@8 в функции _main
srv.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__send@16 в функции _main
srv.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__recv@16 в функции _main
srv.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__accept@12 в функции _main
srv.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__listen@8 в функции _main
srv.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__closesocket@4 в функции _main
srv.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__bind@12 в функции _main
srv.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__freeaddrinfo@4 в функции _main
srv.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__WSAGetLastError@0 в функции _main
srv.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__socket@12 в функции _main
srv.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__WSACleanup@0 в функции _main
srv.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__getaddrinfo@16 в функции _main
srv.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__WSAStartup@8 в функции _main
srv.exe : fatal error LNK1120: 13 неразрешенных внешних элементов
чо за хня, в 6-ой студии такого не было
все пути к ашкам прописаны, либы на месте
Re: помогите настроить везуальную студею 8
Добавлено: 2010-06-24 10:35:48
Fastman
Во первых, никогда не юзай русские версии.
Ибо это просто трэш.
А по твоему вопросу: а кто будет библиотеки прописывать, чтобы линкер знал откуда и что брать ?
Либо в свойствах линкера добавь ws2_32.lib (Project -> Properties ->Linker -> Input -> Additional Dependies)
Либо в хедере пропиши:
#pragma comment (lib, "ws2_32.lib")
Re: помогите настроить везуальную студею 8
Добавлено: 2010-06-24 12:34:34
dekloper
Fastman писал(а):Во первых, никогда не юзай русские версии.
Ибо это просто трэш.
ага, зато пол мсдн-а по-русски.. в отдельных местах..
туд один знакомый вобще советует пересесть на борланд..
Fastman писал(а):Либо в хедере пропиши:
#pragma comment (lib, "ws2_32.lib")
пасибо, так помогло
Fastman писал(а):А по твоему вопросу: а кто будет библиотеки прописывать, чтобы линкер знал откуда и что брать ?
Либо в свойствах линкера добавь ws2_32.lib (Project -> Properties ->Linker -> Input -> Additional Dependies)
а
это разве не для того придумано, штоб каждый раз не прописывать отдельную либу для нового проекта?
а
свойства линкёра я правильно гляжу? тож тока каталог можно добавить..
Re: помогите настроить везуальную студею 8
Добавлено: 2010-06-24 13:04:10
Fastman
ага, зато пол мсдн-а по-русски.. в отдельных местах..
туд один знакомый вобще советует пересесть на борланд..
Посоветуй убиццо ему оп стену
а
это разве не для того придумано, штоб каждый раз не прописывать отдельную либу для нового проекта?
а
свойства линкёра я правильно гляжу? тож тока каталог можно добавить..
Нет. не для того. Это придуманно для того чтобы знать ГДЕ валяются либы. Но какую линковать - ты должен сам указывать.
Re: помогите настроить везуальную студею 8
Добавлено: 2010-06-24 13:12:45
Гость
а почему 8студия?
ставте 2010! там глюков больше! и интереснее с ними сражаться))
Re: помогите настроить везуальную студею 8
Добавлено: 2010-06-24 13:47:24
dekloper
Fastman писал(а):
Посоветуй убиццо ему оп стену

а пошто так? он грит, лучше вапще узать компилер от интелла или ваткомма..
моё имхо, конечно, M$-овское лучше M$-овским топором и стругать.
Гость писал(а):а почему 8студия?
ставте 2010! там глюков больше! и интереснее с ними сражаться))
кстате, ток хател про 10-ку спросить..

Re: помогите настроить везуальную студею 8
Добавлено: 2010-06-24 14:04:11
Гость
M$ совсвский компиллер не плохой
но интелловский лучше оптимизирует
ваткомовский никакой, еще хуже gcc
Re: помогите настроить везуальную студею 8
Добавлено: 2010-06-24 14:09:02
Fastman
а пошто так? он грит, лучше вапще узать компилер от интелла или ваткомма..
моё имхо, конечно, M$-овское лучше M$-овским топором и стругать.
А причем тут IDE к компилятору ?
Во первых - борланд издох. Туда ему и дорога. Ватком ??? Ребята... у нас не oldschool party

Интел ? Хороший компилятор, Годный.
Но я думаю ты врядли занимаешся аудио/видео/DSP и готов ловить глюки на разных платформах

Еще раз повторяю - лучше плохие промышленные стандарты, чем свои или хитро выпученные
кстате, ток хател про 10-ку спросить..
Ну если ты хочешь подергать новые фишки нового стандарта C++(всякеи там функторы и прочие рюшечки)
то да. В оновном там для .NET куча плюшек. Переходить можно, но как сказали выше косяки и несовместимости будут.
Re: помогите настроить везуальную студею 8
Добавлено: 2010-07-12 14:30:18
dekloper
Гость писал(а):а почему 8студия?
ставте 2010! там глюков больше! и интереснее с ними сражаться))
саи**лся
у мня от8-й моск не на месте......
не хочет запускаться этот с*аный нотепад вторым параметром
Код: Выделить всё
CreateProcess(NULL, L"notepad.exe", NULL, NULL, FALSE, NULL, NULL, NULL, &si, &pi);
а так работает
Код: Выделить всё
CreateProcess(L"c:\\windows\\notepad.exe",NULL,NULL,NULL,FALSE,NULL,NULL,NULL,&si,&pi);
далее.. партизаны ещё толще..
вместо нотепада хочу открыть смд.екзе
Код: Выделить всё
CreateProcess( NULL, L"cmd.exe", NULL, NULL, TRUE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi);
ловим исключение в kernel32.dll
ладно, допустим, я кревыме культями пешу кревой кот..
но тот же код, в той же сборке ОС в 6-ой студии работает! и консоль и нотепад.. всё запускается.. и без всяких там
L "прога.екзе"..

Re: помогите настроить везуальную студею 8
Добавлено: 2010-07-12 14:55:43
Fastman
dekloper писал(а):
допустим, я кревыме культями пешу кревой кот..
Да. Так и есть.
dekloper писал(а):
но тот же код, в той же сборке ОС в 6-ой студии работает! и консоль и нотепад.. всё запускается.. и без всяких там
L "прога.екзе"..
Да ты упортый !

Ну неужели трудно почитать что значит макрос _L("") и _T("") ?
Я тебе даже подскажу

Погляди в настройки проекта - где указано, будет проект с мультибайтом или юникодом

По дефолту теперь - с юникодом !
Вся беда в том что сначало надо читать и учиться не говнокодить.
Не обижайся, я тоже через это прошел. Но сделал выводы - что нужно уметь читать документацию.
Re: помогите настроить везуальную студею 8
Добавлено: 2010-07-17 11:32:07
dekloper
Fastman писал(а):
Да. Так и есть.
да знаю, что есть.. стараюсь выпрямлять как могу.. )
Fastman писал(а):
Да ты упортый !

Ну неужели трудно почитать что значит макрос _L("") и _T("") ?
Я тебе даже подскажу

Погляди в настройки проекта - где указано, будет проект с мультибайтом или юникодом

По дефолту теперь - с юникодом !
Вся беда в том что сначало надо читать и учиться не говнокодить.
Не обижайся, я тоже через это прошел. Но сделал выводы - что нужно уметь читать документацию.
та не обижаюсь я не обижаюсь..
спасибо конечно, почитал мсдн, исправился.. а также ещё немного "интуитивно понятных дефолтных настроек"...
Код: Выделить всё
..........
WCHAR szCmdLine[] = L"cmd.exe";
..........
CreateProcess( NULL, (LPWSTR)szCmdLine, NULL, NULL, TRUE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi);
..........
вопрос в другом
я конечно догадывался, что люди, "придумавшие бейсик", делают всё, что бы было "интуитивно и понятно", но нафига в настройках проекта "по-дефолту" стоит "собирать код с многопоточными длл" (ключ /MD)??
в результате кодом импортируется msvcr90.dll из везуальной студии, который никада не заработает без установленной студии..
Re: помогите настроить везуальную студею 8
Добавлено: 2010-07-17 11:43:54
Fastman
dekloper писал(а):
вопрос в другом
я конечно догадывался, что люди, "придумавшие бейсик", делают всё, что бы было "интуитивно и понятно", но нафига в настройках проекта "по-дефолту" стоит "собирать код с многопоточными длл" (ключ /MD)??
..
А что смущает ? Да, сейчас софт многопоточный. 21 век !
Ну конечно надо следить чтобы все в проекте было собрано с одинаковыми ключами, чтобы не отгребать потом
dekloper писал(а):
в результате кодом импортируется msvcr90.dll из везуальной студии, который никада не заработает без установленной студии..
Сорри, но это уже вообще. Действительно трудно почитать про деплоймент приложений ?
Первая ссылка в гугле по Microsoft Visual C++ 2005 Redistributable Package (x86).
Это и есть инсталяк всего нужнеого рантайма для работы софта написанного в 2005 студии.
Можно отдельно ставить..можно в свой инсталяк включить все нужные библиотеки.
Не надо ставить никакую студию !!!!
P.S.
Да вы все сума посходили.
P.P.S.
Извините, тяжелая неделя
