"F:\code\C++\untitled2\build\ALL_BUILD.vcxproj" (default target) (1) ->
"F:\code\C++\untitled2\build\untitled2.vcxproj" (default target) (3) ->
(Link target) ->
main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp_sodium_bin2hex в функции "void __cdecl start(v
oid)" (?start@@YAXXZ). [F:\code\C++\untitled2\build\untitled2.vcxproj]
main.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp_sodium_hex2bin в функции "void __cdecl start(v
oid)" (?start@@YAXXZ). [F:\code\C++\untitled2\build\untitled2.vcxproj]
main.obj : error LNK2019: ссылка на неразрешенный внешний символ tox_new в функции "void __cdecl start(void)" (?start
@@YAXXZ). [F:\code\C++\untitled2\build\untitled2.vcxproj]
main.obj : error LNK2019: ссылка на неразрешенный внешний символ tox_kill в функции "void __cdecl start(void)" (?star
t@@YAXXZ). [F:\code\C++\untitled2\build\untitled2.vcxproj]
main.obj : error LNK2019: ссылка на неразрешенный внешний символ tox_bootstrap в функции "void __cdecl start(void)" (
?start@@YAXXZ). [F:\code\C++\untitled2\build\untitled2.vcxproj]
main.obj : error LNK2019: ссылка на неразрешенный внешний символ tox_callback_self_connection_status в функции "void
__cdecl start(void)" (?start@@YAXXZ). [F:\code\C++\untitled2\build\untitled2.vcxproj]
main.obj : error LNK2019: ссылка на неразрешенный внешний символ tox_iteration_interval в функции "void __cdecl start
(void)" (?start@@YAXXZ). [F:\code\C++\untitled2\build\untitled2.vcxproj]
main.obj : error LNK2019: ссылка на неразрешенный внешний символ tox_iterate в функции "void __cdecl start(void)" (?s
tart@@YAXXZ). [F:\code\C++\untitled2\build\untitled2.vcxproj]
main.obj : error LNK2019: ссылка на неразрешенный внешний символ tox_self_get_address в функции "void __cdecl start(v
oid)" (?start@@YAXXZ). [F:\code\C++\untitled2\build\untitled2.vcxproj]
main.obj : error LNK2019: ссылка на неразрешенный внешний символ tox_self_set_name в функции "void __cdecl start(void
)" (?start@@YAXXZ). [F:\code\C++\untitled2\build\untitled2.vcxproj]
main.obj : error LNK2019: ссылка на неразрешенный внешний символ tox_self_set_status_message в функции "void __cdecl
start(void)" (?start@@YAXXZ). [F:\code\C++\untitled2\build\untitled2.vcxproj]
main.obj : error LNK2019: ссылка на неразрешенный внешний символ tox_friend_add_norequest в функции "void __cdecl fri
end_request_cb(struct Tox *,unsigned char const *,unsigned char const *,unsigned __int64,void *)" (?friend_request_cb@@
YAXPEAUTox@@PEBE1_KPEAX@Z). [F:\code\C++\untitled2\build\untitled2.vcxproj]
main.obj : error LNK2019: ссылка на неразрешенный внешний символ tox_friend_send_message в функции "void __cdecl frie
nd_message_cb(struct Tox *,unsigned int,enum TOX_MESSAGE_TYPE,unsigned char const *,unsigned __int64,void *)" (?friend_
message_cb@@YAXPEAUTox@@IW4TOX_MESSAGE_TYPE@@PEBE_KPEAX@Z). [F:\code\C++\untitled2\build\untitled2.vcxproj]
main.obj : error LNK2019: ссылка на неразрешенный внешний символ tox_callback_friend_request в функции "void __cdecl
start(void)" (?start@@YAXXZ). [F:\code\C++\untitled2\build\untitled2.vcxproj]
main.obj : error LNK2019: ссылка на неразрешенный внешний символ tox_callback_friend_message в функции "void __cdecl
start(void)" (?start@@YAXXZ). [F:\code\C++\untitled2\build\untitled2.vcxproj]
F:\code\C++\untitled2\build\Debug\untitled2.exe : fatal error LNK1120: неразрешенных внешних элементов: 15 [F:\code\C
++\untitled2\build\untitled2.vcxproj]
#include <iostream>
#include <sodium/utils.h>
#include <tox/tox.h>
using namespace std;
typedef struct DHT_node {
const char* ip;
uint16_t port;
const char key_hex[TOX_PUBLIC_KEY_SIZE * 2 + 1];
} DHT_node;
void friend_request_cb( Tox* tox, const uint8_t* public_key, const uint8_t* message, size_t length,
void* user_data );
void friend_message_cb( Tox* tox, uint32_t friend_number, TOX_MESSAGE_TYPE type, const uint8_t* message,
size_t length, void* user_data );
void self_connection_status_cb( Tox* tox, TOX_CONNECTION connection_status, void* user_data );
void start();
int main()
{
start();
return 0;
}
void friend_request_cb( Tox* tox, const uint8_t* public_key, const uint8_t* message, size_t length,
void* user_data )
{
tox_friend_add_norequest( tox, public_key, NULL );
}
void friend_message_cb( Tox* tox, uint32_t friend_number, TOX_MESSAGE_TYPE type, const uint8_t* message,
size_t length, void* user_data )
{
tox_friend_send_message( tox, friend_number, type, message, length, NULL );
}
void self_connection_status_cb( Tox* tox, TOX_CONNECTION connection_status, void* user_data )
{
switch ( connection_status ) {
case TOX_CONNECTION_NONE:
printf( "Offline\n" );
break;
case TOX_CONNECTION_TCP:
printf( "Online, using TCP\n" );
break;
case TOX_CONNECTION_UDP:
printf( "Online, using UDP\n" );
break;
}
}
void start()
{
Tox* tox = tox_new( NULL, NULL );
tox_self_set_name( tox, NULL, NULL, NULL );
tox_self_set_status_message( tox, NULL, NULL, NULL );
DHT_node nodes[] = {
{"85.143.221.42", 33445, "DA4E4ED4B697F2E9B000EEFE3A34B554ACD3F45F5C96EAEA2516DD7FF9AF7B43"},
{"2a04:ac00:1:9f00:5054:ff:fe01:becd", 33445, "DA4E4ED4B697F2E9B000EEFE3A34B554ACD3F45F5C96EAEA2516DD7FF9AF7B43"},
{"78.46.73.141", 33445, "02807CF4F8BB8FB390CC3794BDF1E8449E9A8392C5D3F2200019DA9F1E812E46"},
{"2a01:4f8:120:4091::3", 33445, "02807CF4F8BB8FB390CC3794BDF1E8449E9A8392C5D3F2200019DA9F1E812E46"},
{"tox.initramfs.io", 33445, "3F0A45A268367C1BEA652F258C85F4A66DA76BCAA667A49E770BCC4917AB6A25"},
{"tox2.abilinski.com", 33445, "7A6098B590BDC73F9723FC59F82B3F9085A64D1B213AAF8E610FD351930D052D"},
{"205.185.115.131", 53, "3091C6BEB2A993F1C6300C16549FABA67098FF3D62C6D253828B531470B53D68"},
{"tox.kurnevsky.net", 33445, "82EF82BA33445A1F91A7DB27189ECFC0C013E06E3DA71F588ED692BED625EC23"}
};
for ( size_t i = 0; i < sizeof( nodes ) / sizeof( DHT_node ); i ++ ) {
unsigned char key_bin[TOX_PUBLIC_KEY_SIZE];
sodium_hex2bin( key_bin, sizeof( key_bin ), nodes[i].key_hex, sizeof( nodes[i].key_hex ) - 1,
NULL, NULL, NULL );
tox_bootstrap( tox, nodes[i].ip, nodes[i].port, key_bin, NULL );
}
uint8_t tox_id_bin[TOX_ADDRESS_SIZE];
tox_self_get_address( tox, tox_id_bin );
char tox_id_hex[TOX_ADDRESS_SIZE * 2 + 1];
sodium_bin2hex( tox_id_hex, sizeof( tox_id_hex ), tox_id_bin, sizeof( tox_id_bin ) );
for ( size_t i = 0; i < sizeof( tox_id_hex ) - 1; i ++ ) {
tox_id_hex[i] = toupper( tox_id_hex[i] );
}
printf( "Tox ID: %s\n", tox_id_hex );
tox_callback_friend_request( tox, friend_request_cb );
tox_callback_friend_message( tox, friend_message_cb );
tox_callback_self_connection_status( tox, self_connection_status_cb );
printf( "Connecting...\n" );
while ( 1 ) {
tox_iterate( tox, NULL );
_sleep( tox_iteration_interval( tox ) * 1000 );
}
tox_kill( tox );
}
cmake_minimum_required(VERSION 3.5)
project(untitled2 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_library(LIBTOXCORE NAMES toxcore PATHS
"${CMAKE_SOURCE_DIR}/dependencies/toxcore/lib"
NO_SYSTEM_ENVIRONMENT_PATH
)
find_library(LIBSODIUM NAMES libsodium PATHS
"${CMAKE_SOURCE_DIR}/dependencies/libsodium/x64/Release/v141/static"
NO_SYSTEM_ENVIRONMENT_PATH
)
include_directories(${CMAKE_SOURCE_DIR}/dependencies/libsodium/include)
include_directories(${CMAKE_SOURCE_DIR}/dependencies/toxcore/include)
add_executable(untitled2 main.cpp)
target_link_libraries(untitled2 ${LIBTOXCORE} ${LIBSODIUM})