Вы можете увидеть все шаги для подключения базы данных MySQL из приложения Java здесь . Для другой базы данных вам просто нужно изменить драйвер только на первом шаге. Убедитесь, что вы предоставили правильный путь к базе данных и исправили имя пользователя и пароль.
Посетите http://apekshit.com/t/51/Steps-to-connect-Database-using-JAVA
Насколько мне известно, нет единственного варианта, который надежно гарантирует это. Существуют комбинации оптимизирующих опций, которые (молча) деактивируют это, поэтому никак ... /INCLUDE
не работает, но для этого вам нужно извлечь и перекодировать искаженное имя символа. У вас есть два варианта: (1) обеспечить, чтобы все регистраторы содержались (включены) в блок перевода, содержащий main
, и обеспечивали их использование. (2) Откажитесь от этой «идиомы» и используйте явную регистрацию.
Внимание: этот ответ сейчас почти 7 лет, и утверждения относительно доступности опций в инструментальной цепочке MSVC ++ устарели. Тем не менее я по-прежнему рекомендую не полагаться на шаблон регистратора и смотреть на альтернативы. Из-за этой рекомендации, пожалуйста, не стесняйтесь голосовать, но я думаю, что это немного несправедливо, потому что этот вариант был добавлен в компоновщик Microsoft. Тем временем
На странице свойств исполняемого файла см. Общие свойства / Ссылки / Использовать вкладки зависимостей библиотеки, установленные в true.
Редактирование: Однако соответствующая библиотека должна быть частью решения.
Вы можете использовать с CMake как:
add_executable(hello ${SOURCE_FILES})
target_link_libraries(hello libA libB libC) # Not need /wholearchive libC
set_target_properties(hello PROPERTIES LINK_FLAGS "/WHOLEARCHIVE:libA /WHOLEARCHIVE:libB")
Примечание: /WHOLEARCHIVE
доступно только для Visual Studio 2015 Update 2+
Я считаю, что ближайший эквивалент будет /OPT:NOREF
.
Версия Visual C ++ в Visual Studio 2015 Update 2 включает новый флаг в link.exe
под названием /WHOLEARCHIVE
, который имеет эквивалентную функциональность для опции --whole-archive
для ld
. Согласно документация флага :
Параметр
blockquote>/WHOLEARCHIVE
заставляет компоновщик включать каждый объектный файл из заданной статической библиотеки или если не указана библиотека, из всех статических библиотек, указанных в команде LINK.
Я использую / INCLUDE: для принудительного включения неиспользуемых символов.
Я использовал другой подход - вместо того, чтобы компилировать все в .lib
, а затем связать это .lib
с исполняемым файлом, я связываю исполняемый файл напрямую с файлами .obj
.
В CMake, это можно сделать следующим образом:
add_library(common OBJECT ${common_sources})
add_executable(executable1 "main1.cc" $<TARGET_OBJECTS:common>
add_executable(executable2 "main2.cc" $<TARGET_OBJECTS:common>
Изменение любого из файлов в ${common_sources})
только перекомпилирует их эквивалентные объекты и перехватывает исполняемые файлы, что обеспечивает те же преимущества, что и если вы связали вещи через промежуточный .lib
. В то же время все статические конструкторы остаются на месте, что устраняет проблему.
Обратите внимание, что это полезно, только если вы ставите статические ссылки.
Этот подход был протестирован с помощью gcc 5.2.0, MinGW-w64 5.2.0 и MSVC 15.