Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
В астрале
Эксперт С++
8023 / 4780 / 654
Регистрация: 24.06.2010
Сообщений: 10,558
1

soci windows

12.07.2012, 02:04. Просмотров 1090. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.07.2012, 02:04
Ответы с готовыми решениями:

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

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

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

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

12
бжни
2467 / 1676 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
12.07.2012, 02:14 2
я бы /VERBOSE указал http://msdn.microsoft.com/en-u... s.80).aspx
во всяком случае увидишь пытается ли он ее прилинковать

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

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

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

Добавлено через 44 секунды
Цитата Сообщение от ForEveR Посмотреть сообщение
Как тогда буст линкуется спокойно
буст по хитрому к студии подключается, там своя история
1
В астрале
Эксперт С++
8023 / 4780 / 654
Регистрация: 24.06.2010
Сообщений: 10,558
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
бжни
2467 / 1676 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
12.07.2012, 04:04 4
Цитата Сообщение от ForEveR Посмотреть сообщение
В VS в каталогах библиотек добавлено C:\Libs\Soci\lib C:\Libs\Soci\lib\Debug.
так а в список используемых либ? (те это выглядит очевидным, но..)
1
В астрале
Эксперт С++
8023 / 4780 / 654
Регистрация: 24.06.2010
Сообщений: 10,558
12.07.2012, 04:12  [ТС] 5
alex_x_x, Компоновщик -> Ввод -> Дополнительные зависимости libsoci_core_3_1.lib;libsoci_postgresql_3_1.lib;libpq.lib;
0
бжни
2467 / 1676 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
12.07.2012, 04:19 6
похоже на правду
так собственно
Цитата Сообщение от alex_x_x Посмотреть сообщение
а с прагмой работает?
1
В астрале
Эксперт С++
8023 / 4780 / 654
Регистрация: 24.06.2010
Сообщений: 10,558
12.07.2012, 04:51  [ТС] 7
alex_x_x, И с прагмой тоже нет.
0
бжни
2467 / 1676 / 135
Регистрация: 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
В астрале
Эксперт С++
8023 / 4780 / 654
Регистрация: 24.06.2010
Сообщений: 10,558
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
бжни
2467 / 1676 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
12.07.2012, 13:38 10
забавно, по-сути тоже вариант бинарной несовместимости)
наверно это можно было как-нибудь через dumpbin проверить, просто даже не пришло в голову
1
0 / 0 / 2
Регистрация: 09.07.2012
Сообщений: 34
13.07.2012, 12:11 11
main же должен значение. Это тоже поправь.
0
бжни
2467 / 1676 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
13.07.2012, 12:15 12
Цитата Сообщение от wiseman92 Посмотреть сообщение
main же должен значение. Это тоже поправь.
должен в си, в цпп не должен
0
Эксперт С++
5036 / 3096 / 271
Регистрация: 11.11.2009
Сообщений: 7,047
17.07.2012, 15:04 13
wiseman92, а он и возвращает. По стандарту компилятор сам вставляет в конец функции main код, эквивалентный return 0;

alex_x_x, должен в любом случае, другое дело, что компилятор требует делать от нас, а что неявно делает сам.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.07.2012, 15:04

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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

При установке Windows 7 или Windows Vista распоковка Windows не идет
Все привет Столкнулся с такой проблемой,когда начинаю устанавливать Windows7 или Vista ...

Сеть между Windows 7 и Windows XP, через TeamViewer (ин-нет только на Windows 7)
проблема: не могу настроить сеть между 7 и ХР на 7ке оба фаерволла отключены, на ХР один и...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

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