2017-11-30 1 views
1

Visual Studioでプログラミング(特にMariaDB)でDBを悩ませて、幸運を覚えていないのは初めての試みです。私は外部リンクを正しく設定していないように見えますが、私は自分の設定を見ているだけで、エラーは見られません。おそらく経験豊富なコーダーには明らかになるだろうが、木々のために森林が見えない。Visual Studio Community 2017リンカの問題 - MariaDB

それぞれのライブラリでx86と64ビットの両方でコンパイルしようとしました。私は以下のx86の設定が含まれていましたが、彼らは同じですAPART代わりに「プログラムファイルのx86」

私のコードは、現時点では非常に簡単であるのに対して、「プログラムファイル」を指しているから

#include "stdafx.h" 
#include <mysql.h> 

int main() 
{ 
    MYSQL* temp; 
    temp = mysql_init(NULL); 

    return 0; 
} 

コンパイルしようとすると次のような出力が得られます。

1>------ Build started: Project: test, Configuration: Debug Win32 ------ 
1>test.cpp 
1>LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library 
1>mariadbclient.lib(mariadb_lib.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _mysql_once_init 
1>mariadbclient.lib(mariadb_lib.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _mysql_once_init 
1>mariadbclient.lib(mariadb_lib.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _mysql_optionsv 
1>mariadbclient.lib(mariadb_lib.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _mysql_optionsv 
1>mariadbclient.lib(ma_init.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _my_win_init 
1>mariadbclient.lib(ma_init.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _ma_end 
1>mariadbclient.lib(ma_pvio.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _ma_pvio_read_async 
1>mariadbclient.lib(mariadb_async.obj) : error LNK2001: unresolved external symbol [email protected] 
1>mariadbclient.lib(pvio_socket.obj) : error LNK2001: unresolved external symbol [email protected] 
1>mariadbclient.lib(ma_default.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _get_default_configuration_dirs 
1>mariadbclient.lib(mariadb_async.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _my_connect_async 
1>mariadbclient.lib(pvio_socket.obj) : error LNK2001: unresolved external symbol [email protected] 
1>mariadbclient.lib(mariadb_async.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _my_connect_async 
1>mariadbclient.lib(pvio_socket.obj) : error LNK2001: unresolved external symbol [email protected] 
1>mariadbclient.lib(pvio_socket.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _pvio_socket_wait_io_or_timeout 
1>mariadbclient.lib(pvio_socket.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _pvio_socket_connect 
1>mariadbclient.lib(pvio_socket.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _pvio_socket_connect 
1>mariadbclient.lib(pvio_socket.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _pvio_socket_blocking 
1>mariadbclient.lib(pvio_socket.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _pvio_socket_async_read 
1>mariadbclient.lib(pvio_socket.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _pvio_socket_wait_io_or_timeout 
1>mariadbclient.lib(pvio_socket.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _pvio_socket_async_write 
1>mariadbclient.lib(pvio_socket.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _pvio_socket_fast_send 
1>mariadbclient.lib(pvio_socket.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _pvio_socket_close 
1>mariadbclient.lib(pvio_socket.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _pvio_socket_connect 
1>mariadbclient.lib(pvio_socket.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _pvio_socket_wait_io_or_timeout 
1>mariadbclient.lib(pvio_socket.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _pvio_socket_connect 
1>mariadbclient.lib(pvio_socket.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _pvio_socket_connect 
1>mariadbclient.lib(ma_schannel.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _ma_schannel_load_private_key 
1>mariadbclient.lib(ma_schannel.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _ma_schannel_load_private_key 
1>mariadbclient.lib(ma_schannel.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _ma_schannel_load_private_key 
1>mariadbclient.lib(ma_schannel.obj) : error LNK2019: unresolved external symbol [email protected] referenced in function _ma_schannel_load_private_key 
1>d:\nikuya\documents\visual studio 2017\Projects\test\Debug\test.exe : fatal error LNK1120: 27 unresolved externals 
1>Done building project "test.vcxproj" -- FAILED. 
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 

私の設定は以下の通りです -

VC++ Directories -> Include Directories -> C:\Program Files %28x86%29\MariaDB\MariaDB Connector C\include\mysql 
VC++ Directories -> Include Directories -> C:\Program Files %28x86%29\MariaDB\MariaDB Connector C\include\mysql\include 
VC++ Directories -> Library Directories -> C:\Program Files %28x86%29\MariaDB\MariaDB Connector C\lib 
VC++ Directories -> Library Directories -> C:\Program Files %28x86%29\MariaDB\MariaDB Connector C\lib\plugin 
C++ Directories -> Addition Include Directories -> C:\Program Files %28x86%29\MariaDB\MariaDB Connector C\include\mysql 
C++ Directories -> Addition Include Directories -> C:\Program Files %28x86%29\MariaDB\MariaDB Connector C\include 
Linker -> General -> Addition Library Directories -> C:\Program Files %28x86%29\MariaDB\MariaDB Connector C\lib\plugin 
Linker -> General -> Addition Library Directories -> C:\Program Files %28x86%29\MariaDB\MariaDB Connector C\lib 
Linker -> Additional Dependancies -> mariadbclient.lib 
Linker -> Additional Dependancies -> libmariadb.lib 

任意の助けをいただければ幸いですし、任意のさらなる情報が必要な場合はお問い合わせください。

注:私はwindows.hも含めて絶望的でしたが、サイコロは含めませんでした。

答えて

1

キーラインはここにある:あなたがマルチスレッドのCランタイムライブラリであるLIBCMTと互換性のないライブラリを使用しようとしている 1>LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library

mariadbライブラリを構築するために使用されたものとは別のスイッチ(たいてい/ MDまたは/ MT)でコンパイルしている可能性があります。

は、詳細はこちらをご覧ください: https://msdn.microsoft.com/en-us/library/aa267384(v=vs.60).aspx

+0

理にかなっていると私は正しいランタイムライブラリを発見したと警告が今行ってきました。しかし、リンクエラーは残っています。 – Lucas

+0

一部の標準Windows APIライブラリがありません。 MSDNで 'closesocket'を見てみると、どのライブラリをリンクするか教えてくれます。 –

+0

ありがとうございます。それを並べ替えてください。 msdn上の関数を見つけて個々のライブラリにリンクする必要があります。 – Lucas

関連する問題