The build method maintained by OpenJPEG is CMake.
To build the library, type from source tree directory:
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make
Binaries are then located in the 'bin' directory.
To install the library, type with root privileges:
make install
make clean
To build the html documentation, you need doxygen to be installed on your system. It will create an "html" directory in TOP_LEVEL/build/doc)
make doc
Main available cmake flags:
Note: when using this option, static libraries are not built and executables are dynamically linked.
cmake . -DBUILD_TESTING:BOOL=ON -DOPJ_DATA_ROOT:PATH='path/to/the/data/directory' -DBUILDNAME:STRING='name_of_the_build'
make
make Experimental
Note : test data is available on the following github repo: https://github.com/uclouvain/openjpeg-data
If '-DOPJ_DATA_ROOT:PATH' option is omitted, test files will be automatically searched in '${CMAKE_SOURCE_DIR}/../data'.
Note 2 : to execute the encoding test suite, kakadu binaries are needed to decode encoded image and compare it to the baseline. Kakadu binaries are freely available for non-commercial purposes at http://www.kakadusoftware.com. kdu_expand will need to be in your PATH for cmake to find it.
Note 3 : OpenJPEG encoder and decoder (not the library itself !) depends on several libraries: png, tiff, lcms, z. If these libraries are not found on the system, they are automatically built from the versions available in the source tree. You can force the use of these embedded version with BUILD_THIRDPARTY:BOOL=ON. On a Debian-like system you can also simply install these libraries with:
sudo apt-get install liblcms2-dev libtiff-dev libpng-dev libz-dev
Note 4 : On MacOS, if it does not work, try adding the following flag to the cmake command :
-DCMAKE_OSX_ARCHITECTURES:STRING=i386
You can use cmake to generate the project files for the IDE you are using (VC2010, XCode, etc).
Type cmake --help
for available generators on your platform.
Examples for Windows with Visual Studio C++ compiler:
If using directly the cl compiler:
cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE:string="Release" -DBUILD_SHARED_LIBS:bool=on -DCMAKE_INSTALL_PREFIX:path="%USERPROFILE%" -DCMAKE_LIBRARY_PATH:path="%USERPROFILE%" -DCMAKE_INCLUDE_PATH:path="%USERPROFILE%\include" ..
To compile a 64-bit application, open 64-Bit Visual C++ toolset on the command line and run cmake. For further information, please refer to: How to: Enable a 64-Bit Visual C++ Toolset on the Command Line.
If you do not want directly use the cl compiler, you could use:
cmake -DCMAKE_BUILD_TYPE:string="Release" -DBUILD_SHARED_LIBS:bool=on -DCMAKE_INSTALL_PREFIX:path="%USERPROFILE%" -DCMAKE_LIBRARY_PATH:path="%USERPROFILE%" -DCMAKE_INCLUDE_PATH:path="%USERPROFILE%\include" ..
To create Visual Studio solution (.sln) and project files (.vcproj / .vcxproj):
cmake -G "Visual Studio 14 2015" -DCMAKE_BUILD_TYPE:string="Release" -DBUILD_SHARED_LIBS:bool=on -DCMAKE_INSTALL_PREFIX:path="%USERPROFILE%" -DCMAKE_LIBRARY_PATH:path="%USERPROFILE%" -DCMAKE_INCLUDE_PATH:path="%USERPROFILE%\include" ..
64-bit application:
cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_BUILD_TYPE:string="Release" -DBUILD_SHARED_LIBS:bool=on -DCMAKE_INSTALL_PREFIX:path="%USERPROFILE%" -DCMAKE_LIBRARY_PATH:path="%USERPROFILE%" -DCMAKE_INCLUDE_PATH:path="%USERPROFILE%\include" ..
For Intel/AMD processors, OpenJPEG implements optimizations using the SSE4.1 instruction set (for example, for the 9x7 inverse MCT transform) and the AVX2 instruction set (for example, for the 5x3 inverse discrete wavelet transform). Currently, those optimizations are only available if OpenJPEG is built to use those instruction sets (and the resulting binary will only run on compatible CPUs)
With gcc/clang, it is possible to enable those instruction sets with the following :
cmake -DCMAKE_C_FLAGS="-O3 -msse4.1 -DNDEBUG" ..
cmake -DCMAKE_C_FLAGS="-O3 -mavx2 -DNDEBUG" ..
(AVX2 implies SSE4.1)
Or if the binary is dedicated to run on the machine where it has been compiled :
cmake -DCMAKE_C_FLAGS="-O3 -march=native -DNDEBUG" ..
Before committing changes, run:
scripts/prepare-commit.sh
To use openjpeg exported cmake file, simply create your application doing:
$ cat CMakeLists.txt
find_package(OpenJPEG REQUIRED)
include_directories(${OPENJPEG_INCLUDE_DIRS})
add_executable(myapp myapp.c)
target_link_libraries(myapp ${OPENJPEG_LIBRARIES})
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。