Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
#1

soci windows - C++

12.07.2012, 02:04. Просмотров 778. Ответов 12
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
#include <soci.h>
#include <postgresql/soci-postgresql.h>
#include <iostream>
#include <string>
 
int main()
{
    soci::session sql;
}
Вот такой код, получаю ошибку линковки наподобие этой Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall soci::session::session(void)" (??0session@soci@@QAE@XZ) в функции _main C:\Users\ForEveR\Documents\Visual Studio 11\Projects\Inter\Inter\Inter.obj Inter

soci установлена в папку C:/Libs/Soci в каталоге lib лежат либы libsoci_core_3_1.lib и libsoci_postgresql_3_1.lib так же есть папка Debug в которой лежит тоже самое плюс другие файлы. В VS в каталогах библиотек добавлено C:\Libs\Soci\lib C:\Libs\Soci\lib\Debug. Вообщем я не могу понять в чем проблема, разве нужна #pragma чтобы указать какую либу юзать? Как тогда буст линкуется спокойно?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.07.2012, 02:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос soci windows (C++):

Что выбирать для дальнейшего изучения Windows 7 c Win32 или Windows 8 c WinRt? - C++
Стоит или ещё изучать Windows 7 в целом и Win32? Сейчас много людей все ещё пользуется этим, но не уверен стоит ли начинать, ведь будет...

Программировани Shell для Windows (замена Windows Explorer) - C++
Если да. то поделитесь пожалуйста исходниками или на худой конец ссылками на OpenSource проектами на эту тему.Заранее благодарен.

Windows 8.1 обновилась недавно до Windows 10, при этом перестала запускаться Windows 7, установленная второй - Windows 10
Купил ноут, на котором была предустановлена Windows 8.1. Но так как некоторые программы под ней не работаю, пришлось установить Windows 7....

Беспроводная сеть Windows XP- Windows 7, Windows 7 подключается но пишет что без доступа к интернету. - Wi-Fi
Компьютер под управлением Windows XP посредством USB адаптера D-Link (WiFi точка) дает WiFi на ноутбук под управлением Windows 7, Ноут...

Во время переустановки Windows 7 сохранила Windows XP как Windows.old - что с ней делать? - Windows XP
у меня стоял widows xp я сделал переустановку и поставил windows 7 во время переустановки windows 7 сохранила windows xp как Windows.old...

Рухнула Windows 8 на ноутбуке Dell. Как установить заново Windows 8 или Windows 7? - Windows 8, 8.1
при попытке восстановить систему с widows 8 пишет что не удалось восстановить,ни одним из предлагаемых способов. запускаю установку с...

12
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
12.07.2012, 02:14 #2
я бы /VERBOSE указал http://msdn.microsoft.com/en-us/library/wdsk6as6(v=vs.80).aspx
во всяком случае увидишь пытается ли он ее прилинковать

через dumpbin проверил, что в библиотеке такой символ есть http://msdn.microsoft.com/ru-ru/library/c1h23y6c

да и вообще, если это класс, то ессно должно быть собрано тем же компилятором итп

Добавлено через 48 секунд
Цитата Сообщение от ForEveR Посмотреть сообщение
Вообщем я не могу понять в чем проблема, разве нужна #pragma чтобы указать какую либу юзать? Как тогда буст линкуется спокойно?
а с прагмой работает?
значит все же в конфигурации проекта проблемы

Добавлено через 44 секунды
Цитата Сообщение от ForEveR Посмотреть сообщение
Как тогда буст линкуется спокойно
буст по хитрому к студии подключается, там своя история
1
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
12.07.2012, 03:56  [ТС] #3
Лог...

1>------ Построение начато: проект: Inter, Конфигурация: Debug Win32 ------
1>
1> Поиск библиотек
1> Поиск C:\Libs\Soci\lib\libsoci_core_3_1.lib:
1> Поиск C:\Libs\Soci\lib\libsoci_postgresql_3_1.lib:
1> Поиск C:\Program Files\PostgreSQL\9.1\lib\libpq.lib:
1> Поиск C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib\msvcprtd.lib:
1> Поиск C:\Boost\lib\libboost_regex-vc110-mt-gd-1_49.lib:
1> Поиск C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib\MSVCRTD.lib:
1> Поиск C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib\OLDNAMES.lib:
1> Поиск C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\kernel32.lib:
1> Поиск C:\Libs\Soci\lib\libsoci_core_3_1.lib:
1> Поиск C:\Libs\Soci\lib\libsoci_postgresql_3_1.lib:
1> Поиск C:\Program Files\PostgreSQL\9.1\lib\libpq.lib:
1> Поиск C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib\msvcprtd.lib:
1> Поиск C:\Boost\lib\libboost_regex-vc110-mt-gd-1_49.lib:
1> Поиск C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib\MSVCRTD.lib:
1> Поиск C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib\OLDNAMES.lib:
1>
1> Поиск библиотек завершен
1>
1> Поиск библиотек
1> Поиск C:\Libs\Soci\lib\libsoci_core_3_1.lib:
1> Поиск C:\Libs\Soci\lib\libsoci_postgresql_3_1.lib:
1> Поиск C:\Program Files\PostgreSQL\9.1\lib\libpq.lib:
1> Поиск C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib\msvcprtd.lib:
1> Поиск C:\Boost\lib\libboost_regex-vc110-mt-gd-1_49.lib:
1> Поиск C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib\MSVCRTD.lib:
1> Поиск C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib\OLDNAMES.lib:
1> Поиск C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86\kernel32.lib:
1>
1> Поиск библиотек завершен
1>Inter.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall soci::session::session(void)" (??0session@soci@@QAE@XZ) в функции _main
1>Inter.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall soci::session::~session(void)" (??1session@soci@@QAE@XZ) в функции _main
1>C:\Users\ForEveR\Documents\Visual Studio 11\Projects\Inter\Debug\Inter.exe : fatal error LNK1120: неразрешенных внешних элементов: 2
0
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
12.07.2012, 04:04 #4
Цитата Сообщение от ForEveR Посмотреть сообщение
В VS в каталогах библиотек добавлено C:\Libs\Soci\lib C:\Libs\Soci\lib\Debug.
так а в список используемых либ? (те это выглядит очевидным, но..)
1
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
12.07.2012, 04:12  [ТС] #5
alex_x_x, Компоновщик -> Ввод -> Дополнительные зависимости libsoci_core_3_1.lib;libsoci_postgresql_3_1.lib;libpq.lib;
0
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
12.07.2012, 04:19 #6
похоже на правду
так собственно
Цитата Сообщение от alex_x_x Посмотреть сообщение
а с прагмой работает?
1
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
12.07.2012, 04:51  [ТС] #7
alex_x_x, И с прагмой тоже нет.
0
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
12.07.2012, 04:53 #8
ForEveR, тогда
Цитата Сообщение от alex_x_x Посмотреть сообщение
через dumpbin проверил, что в библиотеке такой символ есть http://msdn.microsoft.com/ru-ru/library/c1h23y6c
символы должны совпадать
если не совпадают, значит скомпилено для другого компилятора (несовместимость на уровне статических библиотек не лечится), либо там нет такого конструктора
1
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
12.07.2012, 05:42  [ТС] #9
Требует Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall soci::session::session(void)" (??0session@soci@@QAE@XZ) в функции _main C:\Users\ForEveR\Documents\Visual Studio 11\Projects\Inter\Inter\Inter.obj Inter

вывод:

424A 00000000 UNDEF notype () External | ??0session@soci@@QEAA@XZ (public: __cdecl soci::session::session(void))
424B 00000000 UNDEF notype () External | ??1session@soci@@QEAA@XZ (public: __cdecl soci::session::~session(void))
61F 00000000 SECTA1 notype () External | ??0session@soci@@QEAA@XZ (public: __cdecl soci::session::session(void))
624 00000690 SECTA1 notype () External | ??1session@soci@@QEAA@XZ (public: __cdecl soci::session::~session(void))
6A9 00000000 SECTA2 notype () Static | ?dtor$0@?0???0session@soci@@QEAA@XZ@4HA (int `public: __cdecl soci::session::session(void)'::`1'::dtor$0)
6AA 0000028C SECTA2 notype () Static | ?dtor$0@?0???1session@soci@@QEAA@XZ@4HA (int `public: __cdecl soci::session::~session(void)'::`1'::dtor$0)
6BE 00000027 SECTA2 notype () Static | ?dtor$1@?0???0session@soci@@QEAA@XZ@4HA (int `public: __cdecl soci::session::session(void)'::`1'::dtor$1)
6BF 000002B3 SECTA2 notype () Static | ?dtor$1@?0???1session@soci@@QEAA@XZ@4HA (int `public: __cdecl soci::session::~session(void)'::`1'::dtor$1)
6CA 000002DD SECTA2 notype () Static | ?dtor$2@?0???1session@soci@@QEAA@XZ@4HA (int `public: __cdecl soci::session::~session(void)'::`1'::dtor$2)
5D4 00000000 UNDEF notype () External | ??0session@soci@@QEAA@XZ (public: __cdecl soci::session::session(void))
5D5 00000000 UNDEF notype () External | ??1session@soci@@QEAA@XZ (public: __cdecl soci::session::~session(void))
Я так понимаю символы не совпадают?

Добавлено через 32 минуты
Хм. Отлично. soci была собрана под 64 бита, а приложение создано под 32. Шииикарно...
Собственно вопрос закрыт. Работает.
0
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
12.07.2012, 13:38 #10
забавно, по-сути тоже вариант бинарной несовместимости)
наверно это можно было как-нибудь через dumpbin проверить, просто даже не пришло в голову
1
wiseman92
0 / 0 / 0
Регистрация: 09.07.2012
Сообщений: 34
13.07.2012, 12:11 #11
main же должен значение. Это тоже поправь.
0
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
13.07.2012, 12:15 #12
Цитата Сообщение от wiseman92 Посмотреть сообщение
main же должен значение. Это тоже поправь.
должен в си, в цпп не должен
0
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
17.07.2012, 15:04 #13
wiseman92, а он и возвращает. По стандарту компилятор сам вставляет в конец функции main код, эквивалентный return 0;

alex_x_x, должен в любом случае, другое дело, что компилятор требует делать от нас, а что неявно делает сам.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.07.2012, 15:04
Привет! Вот еще темы с ответами:

Возможно ли после переустановки Windows с установочного диска с Windows 8 снова обновиться до Windows 10? - Windows 10
Так получилось, что у меня начал сильно глючить софт, как мне сказали, что я напорталчил при первой установке винды (W8 с диска). Сейчас у...

Что лучше: Windows XP SP3, Windows Vista SP2 или Windows 7 SP1? - Windows 7
Что лучше: Windows Vista Ultimate SP2, Windows XP SP3 или Windows Se7en Максимальная Pre SP1 в плане удобности.

Как вернуть Лицензионную windows 8 после установки Windows 7, есть Windows.old - Windows 8, 8.1
Здравствуйте У меня такая проблема мне один знакомый посоветовал поменять виндовс 8 на винду 7 на ноутбуке сказал быстрее работать...

Запуск в Windows 7 образа Windows XP Mode на виртуальной машине Windows Virtual PC - Windows 7
Столкнулся со следующей проблемой. После установки Virtual PC для Windows 7 (64-бит) и Windows XP Mode попытался скопировать файл файлы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Yandex
Объявления
17.07.2012, 15:04
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru