CMake с vcpkg — включение libbid.lib (intel math lib) в качестве зависимости для внешнего исходного кода (TWS API)C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 CMake с vcpkg — включение libbid.lib (intel math lib) в качестве зависимости для внешнего исходного кода (TWS API)

Сообщение Anonymous »

Я работаю над проектом CMake C++, используя vcpkg для управления импортом графических пакетов. Цель — автоматизировать торговлю акциями с помощью TWS API от Interactive Brokers (IBKR). Ниже представлена ​​текущая структура проекта (все еще проверка концепции):

Код: Выделить всё

IBKR-BOT/
CMakeLists.txt
IBKR-BOT.cpp
IBKR-BOT.h
Dashboard/
CMakeLists.txt
Dashboard.cpp
Dashboard.h
Libraries/
CMakeLists.txt
libbid.lib
TWSClient/
CMakeLists.txt
TWSClient.cpp
TWSClient.h
Распределение проекта
  • IBKR-BOT: Основной исполняемый файл и проект. Это зависит от подпроектов Dashboard и TWSClient.
  • Панель мониторинга: отображает торговлю. информация (в настоящее время показывает фальшивую эволюцию запасов).
  • Библиотеки: Содержит внешние библиотеки (в настоящее время только libbid.lib). , десятичная математика Intel с плавающей запятой Library).
  • TWSClient: оболочка для управления вызовами TWS API. В настоящее время поддерживаются только базовые функции, такие как проверка связи и вход в систему.
Проблема
Проекты Dashboard и IBKR-BOT хороши, поэтому я не предоставил здесь их файлы CmakeLists и CPP. Моя основная проблема связана с TWSClient. Но помните, что каждый подпроект (панель управления и TWSclient связаны с IBKR-BOT, поскольку это основной проект и исполняемый файл)
Я успешно включил исходный код TWS API в CMakeLists.txt< /code> проекта TWSClient, и методы TWS API распознаются. Однако мне не удается правильно связать libbid.lib, который необходим для работы TWS API.
Я получаю несколько экземпляров этой ошибки (для разные функции из libbid):

Код: Выделить всё

LNK2019 unresolved external symbol __bid64_add referenced in function "public: static unsigned __int64 __cdecl DecimalFunctions::add(unsigned __int64,unsigned __int64)" (?add@DecimalFunctions@@SA_K_K0@Z)
< /code>
 Cmake Configuration для twsclient < /h2>
# Set path to TWS API source directory
set(TWSAPI_SOURCE_DIR "C:/TWS API/source/CppClient/client")

# Include TWS API headers
include_directories(${TWSAPI_SOURCE_DIR})

# Gather all TWS API source files
file(GLOB TWSAPI_SOURCES "${TWSAPI_SOURCE_DIR}/*.cpp")

# Create TWSAPI static library
add_library(TWSAPI STATIC ${TWSAPI_SOURCES})

# Link libbid.lib to TWSAPI
target_link_libraries(TWSAPI PRIVATE ${CMAKE_SOURCE_DIR}/Libraries/libbid.lib)

# Create TWSClient static library
add_library(TWSClient STATIC TWSClient.cpp)

# Ensure TWSClient sees TWSAPI headers and libraries
target_include_directories(TWSClient PUBLIC ${TWSAPI_SOURCE_DIR})
target_link_libraries(TWSClient PRIVATE TWSAPI)
< /code>
 код Twsclient, который не удается < /h2>
Я включаю только важную часть кода, на самом деле не так много. Вот где появляется BuilderRor.  < /P>
unresolved external symbol __bid64_add referenced in function.....
заголовок

Код: Выделить всё

#pragma once

#ifndef TWSCLIENT_H
#define TWSCLIENT_H

#include 
#include 
#include 

class TWSClient : public EWrapper {
// Member for the client socket
EReaderOSSignal m_osSignal;
EClientSocket* const m_pClient;

public:
TWSClient();
< /code>
 cpp < /h3>
#include "TWSClient.h"
#include 
#include 

TWSClient::TWSClient() :
m_osSignal(2000)//2-seconds timeout
, m_pClient(new EClientSocket(this, &m_osSignal))
{
}

// Connect to IBKR Gateway or TWS
bool TWSClient::connect(const std::string& host, int port, int clientId) {
if (m_pClient->eConnect(host.c_str(), port, clientId)) {
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79390078/cmake-with-vcpkg-including-libbid-lib-intel-math-lib-as-dependency-for-exter[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Связывание math.h через CMake при добавлении внешнего проекта, отличного от CMake
    Anonymous » » в форуме C++
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Временная сложность Math.min и Math.max
    Anonymous » » в форуме JAVA
    0 Ответы
    62 Просмотры
    Последнее сообщение Anonymous
  • Почему math.cos(math.pi/2) не возвращает ноль?
    Anonymous » » в форуме Python
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous
  • Math.sqrt (x) и Math.pow (x, 0,5) эквивалентны?
    Anonymous » » в форуме Javascript
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • JavaScript - math.floor (math.random ()) - Reposition element
    Anonymous » » в форуме Html
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»