Интересно, почему это происходит.
blockquote>Компилятор оптимизирует весь ваш код. 300ps за операцию означает, что только noop был "выполнен".
Я пошел дальше и начал преобразование. Я еще не закончил, но в случае, если кто-то еще рассматривает возможность обновления с 1.5 до 1.6, я отвечу на вопрос тем, что я видел до сих пор.
Для многих людей (все?) Компилятор не будет работать и выйдет из строя с ошибкой переполнения стека. Вы можете исправить это с помощью инструментов командной строки, но я не нашел способа исправить это с помощью плагина. Чтобы исправить это из командной строки, вам нужно добавить параметр стека, чтобы увеличить размер стека. Я строю с помощью ant, поэтому я добавил следующую строку в build.xml:
По мере того, как я узнаю больше, я обновлю это.
Обновление 5/3 / 2009:
Обновление завершено. Не уверен, что мне это нравится до 1,5. Eclipse не совсем гармонирует с новым макетом файла. То есть сейчас он не признает каталог war как корневой для веб-контента. Возможно, где-то есть настройка для этого.
Дополнительные примечания:
В последнем пункте код не инструментируется сборкой муравья, поэтому эта ошибка не влияет на производственное развертывание. Это всего лишь код, сгенерированный Eclipse,
Есть хорошая статья о загрузке динамических библиотек, и примером тому служит инфраструктура плагинов.
EDIT OP добавил Windows как требование, поэтому этот подход не поможет, поскольку Windows не помогает POSIX-совместимый. Однако в WinAPI есть аналогичные функции - см. здесь .
Возможно, вы захотите попробовать Boost.Extension , но будьте осторожны: несмотря на название, это не одна из библиотек повышения.
Вот ссылка на документацию .
If you want cross-platform library loading without having to develop for each platform's API individually, libltdl may help.
Libtool provides a small library, called
libltdl
, that aims at hiding the various difficulties of dlopening libraries from programmers. It consists of a few headers and small C source files that can be distributed with applications that need dlopening functionality. On some platforms, whose dynamic linkers are too limited for a simple implementation oflibltdl
services, it requires GNU DLD, or it will only emulate dynamic linking with libtool's dlpreopening mechanism.libltdl supports currently the following dynamic linking mechanisms:
dlopen
(Solaris, Linux and various BSD flavors)shl_load
(HP-UX)LoadLibrary
(Win16 and Win32)load_add_on
(BeOS)NSAddImage
orNSLinkModule
(Darwin and Mac OS X)- GNU DLD (emulates dynamic linking for static libraries)
- libtool's dlpreopen (see see Dlpreopening)
Boost.Extension seems to only support Windows PE dll
s, UNIX ELF shared objects, and Mac OS X Mach-O bundles. Well, that may be sufficient for you...
For C++ plugins you can check this article which detail how to achieve it with the previously mentionned posix calls.
Quoting the article :
Given that we can use these functions to access functions in a C library, how do we use them to access classes in a C++ library? There are several problems to overcome. One is that we must be able to locate the symbols we need in the library. This is trickier than it might seem because of the difference between the way symbols are stored in C and C++ files.
Boost.Extension кажется хорошим (никогда не использовал его, но скоро попробую). Другой альтернативой может быть класс POCO SharedLibrary .