Hello !
La première:
J'ai dl la derniere version de mysql connector C.
J'ai dl la derniere version de soci.
Je lance cmake, et je cree mon projet soci, puis je tente de le compiler.
la version static: ok
la version dll: ld.exe crash avec ceci:
||=== Build: soci_mysql in SOCI (compiler: GNU GCC Compiler) ===|
D:\C++\libs\soci-3.2.1\backends\mysql\blob.cpp|1|warning: -fPIC ignored for target (all code is position independent) [enabled by default]|
D:\C++\libs\soci-3.2.1\backends\mysql\common.cpp|1|warning: -fPIC ignored for target (all code is position independent) [enabled by default]|
D:\C++\libs\soci-3.2.1\backends\mysql\factory.cpp|1|warning: -fPIC ignored for target (all code is position independent) [enabled by default]|
D:\C++\libs\soci-3.2.1\backends\mysql\row-id.cpp|1|warning: -fPIC ignored for target (all code is position independent) [enabled by default]|
D:\C++\libs\soci-3.2.1\backends\mysql\session.cpp|1|warning: -fPIC ignored for target (all code is position independent) [enabled by default]|
D:\C++\libs\soci-3.2.1\backends\mysql\standard-into-type.cpp|1|warning: -fPIC ignored for target (all code is position independent) [enabled by default]|
D:\C++\libs\soci-3.2.1\backends\mysql\common.h||In instantiation of 'bool soci::details::mysql::is_infinity_or_nan(T) [with T = double]'
D:\C++\libs\soci-3.2.1\backends\mysql\common.h|54|required from 'void soci::details::mysql::parse_num(const char*, T&) [with T = double]'|
D:\C++\libs\soci-3.2.1\backends\mysql\standard-into-type.cpp|122|required from here|
D:\C++\libs\soci-3.2.1\backends\mysql\common.h|42|warning: comparing floating point with == or != is unsafe [-Wfloat-equal]|
D:\C++\libs\soci-3.2.1\backends\mysql\standard-use-type.cpp|1|warning: -fPIC ignored for target (all code is position independent) [enabled by default]|
D:\C++\libs\soci-3.2.1\backends\mysql\common.h||In instantiation of 'bool soci::details::mysql::is_infinity_or_nan(T) [with T = double]'
D:\C++\libs\soci-3.2.1\backends\mysql\standard-use-type.cpp|106|required from here|
D:\C++\libs\soci-3.2.1\backends\mysql\common.h|42|warning: comparing floating point with == or != is unsafe [-Wfloat-equal]|
D:\C++\libs\soci-3.2.1\backends\mysql\statement.cpp|1|warning: -fPIC ignored for target (all code is position independent) [enabled by default]|
D:\C++\libs\soci-3.2.1\backends\mysql\vector-into-type.cpp|1|warning: -fPIC ignored for target (all code is position independent) [enabled by default]|
D:\C++\libs\soci-3.2.1\backends\mysql\common.h||In instantiation of 'bool soci::details::mysql::is_infinity_or_nan(T) [with T = double]'
D:\C++\libs\soci-3.2.1\backends\mysql\common.h|54|required from 'void soci::details::mysql::parse_num(const char*, T&) [with T = double]'|
D:\C++\libs\soci-3.2.1\backends\mysql\vector-into-type.cpp|146|required from here|
D:\C++\libs\soci-3.2.1\backends\mysql\common.h|42|warning: comparing floating point with == or != is unsafe [-Wfloat-equal]|
D:\C++\libs\soci-3.2.1\backends\mysql\vector-use-type.cpp|1|warning: -fPIC ignored for target (all code is position independent) [enabled by default]|
D:\C++\libs\soci-3.2.1\backends\mysql\common.h||In instantiation of 'bool soci::details::mysql::is_infinity_or_nan(T) [with T = double]'
D:\C++\libs\soci-3.2.1\backends\mysql\vector-use-type.cpp|141|required from here|
D:\C++\libs\soci-3.2.1\backends\mysql\common.h|42|warning: comparing floating point with == or != is unsafe [-Wfloat-equal]|
backends\mysql\CMakeFiles\soci_mysql.dir\build.make|322|recipe for target 'bin/libsoci_mysql_3_2.dll' failed|
CMakeFiles\Makefile2|395|recipe for target 'backends/mysql/CMakeFiles/soci_mysql.dir/all' failed|
CMakeFiles\Makefile2|407|recipe for target 'backends/mysql/CMakeFiles/soci_mysql.dir/rule' failed|
D:\C++\libs\soci-3.2.1\build\backends\mysql\Makefile|153|recipe for target 'backends/mysql/CMakeFiles/soci_mysql.dir/rule' failed|

||=== Build failed: 4 error(s), 24 warning(s) (0 minute(s), 11 second(s)) ===|
Une idée ?
Deuxieme, c'est mon prog. qui utilise soci.
Je compile avec ceci:
x86_64-w64-mingw32-g++.exe -O3 -Winline -Wmissing-include-dirs -pg -g -DSERVER_DEBUGGING -O3 -pedantic -std=c++11 -Wextra -Wall -I"C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include" -ID:\C++\libs\boost_1_52_0 -ID:\C++\libs\soci-3.2.1\core -ID:\C++\libs\soci-3.2.1\backends\ -ID:\C++\libs\libconfig-1.4.9\lib
Je link avec ceci:
x86_64-w64-mingw32-g++.exe -LC:\MinGW\lib\gcc\mingw32\4.7.2 -L"C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\lib" -L"C:\Program Files\MySQL\MySQL Server 5.6\lib" -LD:\C++\libs\soci-3.2.1\build\lib -LD:\C++\libs\libconfig-1.4.9\lib -o bin\Debug\Server.exe obj\Debug\Packer\ECD\Files.o obj\Debug\Packer\ECD\Node.o obj\Debug\Packer\ECD\PackingRules.o obj\Debug\Packer\ECD\Reader.o obj\Debug\Packer\ECD\Updater.o obj\Debug\Packer\ECD\Writer.o obj\Debug\Servers\Shared\db\Impl.o obj\Debug\Servers\Shared\db\Structures\Account.o obj\Debug\Servers\Shared\db\Structures\Character.o obj\Debug\Servers\Shared\db\Structures\Server.o obj\Debug\Servers\Shared\db\Structures\World.o obj\Debug\Servers\Shared\Engine\ChannelEngine.o obj\Debug\Servers\Shared\Engine\Impl.o obj\Debug\Servers\Shared\Engine\LoginEngine.o obj\Debug\Servers\Shared\Engine\Map\Footholds.o obj\Debug\Servers\Shared\Engine\Map\Ladders.o obj\Debug\Servers\Shared\Engine\Map\Portals.o obj\Debug\Servers\Shared\Engine\Map\SpawnPoint.o obj\Debug\Servers\Shared\Engine\MasterEngine.o obj\Debug\Servers\Shared\Engine\UpdateEngine.o obj\Debug\Servers\Shared\Engine\UpdateWorker.o obj\Debug\Servers\Shared\Engine\Updator.o obj\Debug\Servers\Shared\Engine\WorldEngine.o obj\Debug\Servers\Shared\Handler\ClientPacketHandler.o obj\Debug\Servers\Shared\Handler\ClientUpdatePacketHandler.o obj\Debug\Servers\Shared\Handler\PlayerChannelPacketHandler.o obj\Debug\Servers\Shared\Handler\PlayerLoginPacketHandler.o obj\Debug\Servers\Shared\Handler\PlayerWorldPacketHandler.o obj\Debug\Servers\Shared\Handler\ServerPacketHandler.o obj\Debug\Servers\Shared\Handler\SourceUpdatePacketHandler.o obj\Debug\Servers\Shared\main.o obj\Debug\Servers\Shared\Packets\ClientPacketCreator.o obj\Debug\Servers\Shared\Packets\PlayerChannelPacketCreator.o obj\Debug\Servers\Shared\Packets\PlayerLoginPacketCreator.o obj\Debug\Servers\Shared\Packets\PlayerWorldPacketCreator.o obj\Debug\Servers\Shared\Packets\ServerPacketCreator.o obj\Debug\Servers\Shared\Packets\UpdatePacketCreator.o obj\Debug\Servers\Shared\Sockets\Acceptor.o obj\Debug\Servers\Shared\Sockets\ClientSocket.o obj\Debug\Servers\Shared\Sockets\Impl\IpAddress.o obj\Debug\Servers\Shared\Sockets\Impl\MacAddress.o obj\Debug\Servers\Shared\Sockets\Impl\PingPong.o obj\Debug\Servers\Shared\Sockets\Impl\Socket.o obj\Debug\Servers\Shared\Sockets\Networker.o obj\Debug\Servers\Shared\Sockets\Packets\Creator.o obj\Debug\Servers\Shared\Sockets\Packets\Packet.o obj\Debug\Servers\Shared\Sockets\Packets\Reader.o obj\Debug\Servers\Shared\Sockets\Packets\Writer.o obj\Debug\Servers\Shared\Sockets\Selector.o obj\Debug\Servers\Shared\Sockets\ServerSocket.o obj\Debug\Servers\Shared\Sockets\Session.o obj\Debug\Servers\Shared\Sockets\Specialisation\Client.o obj\Debug\Servers\Shared\Sockets\Specialisation\Player.o obj\Debug\Servers\Shared\Sockets\Specialisation\Server.o obj\Debug\Servers\Shared\Sockets\Specialisation\Updater.o obj\Debug\Servers\Shared\stdext.o obj\Debug\Servers\Shared\Tools\hexadecimal.o -pg -lgmon -lws2_32 -liphlpapi -lmysql -lsoci_core_3_2 -lsoci_mysql_3_2
c:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.8.0/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\lib/libmysql.dll when searching for -lmysql
D:\C++\libs\soci-3.2.1\build\lib/libsoci_mysql_3_2.a(factory.cpp.obj):factory.cpp.text+0xa1): undefined reference to `soci::dynamic_backends::register_backend(std::string const&, soci::backend_factory const&)'
D:\C++\libs\soci-3.2.1\build\lib/libsoci_mysql_3_2.a(session.cpp.obj):session.cpp.text$_ZN4soci16mysql_soci_errorC1ERKSsi[_ZN4soci16mysql_soci_errorC1ERKSsi]+0x20): undefined reference to `soci::soci_error::soci_error(std::string const&)'
collect2.exe: error: ld returned 1 exit status
Et vous voyez tout de suite le problème à la fin.
Une idée?

merci, nico