diff --git a/CMakeLists.txt b/CMakeLists.txt
index bc88785f4bb60bfd0f94d0cd0ee81d2ea6f0cad9..d8b796620290057ad3ff5338749cce3a31f8b5d4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -12,18 +12,18 @@ endif(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
 
 set(SRC_FILES eismultiplexer.c usbshm.c)
 add_library(${PROJECT_NAME} SHARED ${SRC_FILES})
-target_link_libraries(${PROJECT_NAME} ${LIBUSB_LIBRARIES} -pthread)
+target_link_libraries(${PROJECT_NAME} ${LIBUSB_LIBRARIES})
 target_include_directories(${PROJECT_NAME} PUBLIC ${LIBUSB_INCLUDE_DIRS})
 add_definitions("-std=c17 -Wall -O2 -fno-strict-aliasing")
 install(TARGETS ${PROJECT_NAME} DESTINATION lib)
 install(FILES ./eismultiplexer.h DESTINATION include)
 
 link_directories(${CMAKE_CURRENT_BINARY_DIR})
-add_executable(${PROJECT_NAME}_test main.c)
-add_dependencies(${PROJECT_NAME}_test ${PROJECT_NAME})
-target_link_libraries( ${PROJECT_NAME}_test -l${PROJECT_NAME})
+add_executable(${PROJECT_NAME}_cli main.c)
+add_dependencies(${PROJECT_NAME}_cli ${PROJECT_NAME})
+target_link_libraries( ${PROJECT_NAME}_cli ${PROJECT_NAME})
 add_definitions("-std=c17 -Wall -O2 -fno-strict-aliasing")
-install(TARGETS ${PROJECT_NAME}_test DESTINATION bin)
+install(TARGETS ${PROJECT_NAME}_cli DESTINATION bin)
 
 configure_file(pkgconfig/eismuliplexer.pc.in pkgconfig/eismuliplexer.pc @ONLY)
 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/eismuliplexer.pc DESTINATION lib/pkgconfig)
diff --git a/crossW64.cmake b/crossW64.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..250001da9d32f4a64df4a01df1783aedd26e5344
--- /dev/null
+++ b/crossW64.cmake
@@ -0,0 +1,9 @@
+set(CMAKE_SYSTEM_NAME Windows)
+set(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc)
+set(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++)
+set(CMAKE_FIND_ROOT_PATH /usr/x86_64-w64-mingw32)
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+set(CMAKE_EXE_LINKER_FLAGS "-static")
+set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")