0

We are trying to remove vcpkg from our project as we had lot of issues recently when development is done throughout multiple machines with multiple configurations. Our project has several external dependencies such as boost, IXWebSocket, Eigen etc. We successfully removed all external dependencies and included them in project structure itself except IXWebSocket. Even though IXWebSocket is locally present in folder structure (I don't get any errors due to file not being found as well), the linker fails when we disable vcpkg, specifically the AutoLink feature.

As far as I understand, IXWebSocket library needs to be built first, then my project's linker will link the necessary libraries of the built ws library with my project. It is my understanding that (probably wrong), AutoLink when requested builds ixwebsocket and links correctly with my project.

The errors I'm getting are:

LNK2019: unresolved external symbol...
LNK2001: unresolved external symbol...
  • Is my understanding here correct?
  • How can I get the IXWebSocket built first?
  • I've read that I can either use vcpkg or CMake, how do I integrate CMake to get IXWebSocket built? I do not want to integrate cmake to entire project, just get the ws package built.

This is on Windows 10, Visual Studio 2022 Community, C++20

EDIT: I understand the unresolved external symbol error might be the same but its far from the duplicate question. This is a very specific question on build/link process of a project that has external dependency, not basic unresolved external symbol error question.

Mathlight
  • 6,436
  • 17
  • 62
  • 107
cptalpdeniz
  • 368
  • 1
  • 11
  • ***We are trying to remove vcpkg from our project as we had lot of issues recently when development is done throughout multiple machines with multiple configurations.*** My advice for using `vcpkg` in a production application is to find a git commit that works and install the same git rev on all systems and never update vcpkg (or at least do updates infrequently on a test box and when it passes your rigourous tests then apply that git rev to all systems). I do similar for Visual Studio updates. – drescherjm Jun 27 '23 at 03:49
  • There is also manifest mode in vcpkg which can help in keeping all versions the same. – drescherjm Jun 27 '23 at 03:55

0 Answers0