diff --git a/CMakeLists.txt b/CMakeLists.txt
index d73b62d202e3f92b40914b9b08c2308e20cc056a..2bb09325733d1568e797aad92a50357a16b6d676 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -940,6 +940,8 @@ elseif(HAVE_QT)
   add_executable(gmsh WIN32 Qt/Main.cpp ${GMSH_SRC} ${GMSH_MOC_SRC})
 else(HAVE_FLTK)
   add_executable(gmsh Common/Main.cpp ${GMSH_SRC})
+  add_executable(gmsh_dynamic EXCLUDE_FROM_ALL Common/Main.cpp)
+  target_link_libraries(gmsh_dynamic shared)
 endif(HAVE_FLTK)
 target_link_libraries(gmsh ${LINK_LIBRARIES})