Skip to content

skeleton_test fails to build with MSVC #2798

@yzazik

Description

@yzazik

Hello,

First, I know MSVC hasn't been the first choice running fast, but starting from VS2022, the codegen is not nearly as bad as it was.
Second, I can use GCC or Clang (clang-cl or llvm) to build hwy but I still mostly use it as header only one and if I want to build non-header part I would probably need to patch and rebuild half of the world in our project as well.

Now, I'm trying to add new ops to HWY for [currently unsupported] NPU and for that building tests is essential.
I stumbled on this skeleton_test, which is the only test executable that tries to export something.
Currently it fails with:

  skeleton_test.cc
  skeleton.cc
  Generating Code...
C:\github\highway\hwy\examples\skeleton.cc(111,20): error C2491: 'skeleton::CallFloorLog2': definition of dllimport fun
ction not allowed [C:\github\highway\out\release\build\skeleton_test.vcxproj]
C:\github\highway\hwy\examples\skeleton.cc(120,20): error C2491: 'skeleton::SavedCallFloorLog2': definition of dllimpor
t function not allowed [C:\github\highway\out\release\build\skeleton_test.vcxproj]

From the looks of it, hwy has this HWY_SHARED_DEFINE as PUBLIC, means it would also be propagated to test executables which should export but there is no hwy_EXPORTS defined for it so it falls back to dllimport.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions