I'm Using Ogre3D for this project which is a 3D engine.
Actually i build the project using cmake ( add_executable function )
but for the good of my project, I need to get a shared library instead of an executable.
this is my CMakeLists.txt
project(TestOgre)
cmake_minimum_required(VERSION 2.6)
set(CMAKE_MODULE_PATH "/usr/local/lib/OGRE/cmake/")
#set(CMAKE_CXX_FLAGS "-Wall -W -Werror -ansi -pedantic -g")
# Il s'agit du tutoriel d'exemple, qui utilise quelques fichiers prédéfinis de Ogre. Il faut indique\
r à cmake où se trouvent les includes en question
include_directories ("/usr/local/include/OGRE/")
# Bien sûr, pour compiler Ogre, il faut le chercher, et définir le répertoire contenant les includes\
.
find_package(OGRE REQUIRED)
include_directories (${OGRE_INCLUDE_DIRS})
# L'exemple dépend aussi de OIS, une lib pour gérer la souris, clavier, joystick...
find_package(OIS REQUIRED)
# On définit les sources qu'on veut compiler
SET(SOURCES
main.cpp
Map.cpp
Case.cpp
AObject.cpp
Player.cpp
Game.cpp
UpdateOgre.cpp
InitOgre.cpp
AppDemarrage.cpp)
# On les compile
#add_executable (
# TestOgre ${SOURCES}
#)
// what i have add to get a shared library
add_library (
TestOgre SHARED &{SOURCES}
)
target_link_libraries(TestOgre ${OGRE_LIBRARY} ${OIS_LIBRARY} "/usr/lib/x86_64-linux-gnu/libboost_sy\
stem.so.1.53.0")
From the comments the problems were that you did not use the SHARED parameter to specify a shared library and also that &{SOURCES} was used instead of ${SOURCES}.
add_library (
TestOgre SHARED ${SOURCES}
)
Related
I'm trying to solve the problem, but nothing works. I don't understand why gcc looks for "-llib/cmocka.dll" when it should look for "cmocka.dll". Cmocka downloaded and showed the path to it. I tried to find a solution to the problem on the forums, but the same problem was described there on linux, and I have windows.I would appreciate any help as I don't know what to do anymore.
program structure:
root CMakeLists:
cmake_minimum_required(VERSION 3.7)
project(tests LANGUAGES C ASM)
set(CMAKE_C_STANDARD 99)
add_subdirectory(src)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/Modules")
# cmocka
find_package(CMocka CONFIG)
if (CMocka_FOUND)
message("cmocka found")
include(AddCMockaTest)
include(AddMockedTest)
add_subdirectory(test)
enable_testing()
endif(CMocka_FOUND)
AddCMockaTest:
enable_testing()
include(CTest)
if (CMAKE_CROSSCOMPILING)
if (WIN32)
find_program(WINE_EXECUTABLE
NAMES wine)
set(TARGET_SYSTEM_EMULATOR ${WINE_EXECUTABLE} CACHE INTERNAL "")
endif()
endif()
function(ADD_CMOCKA_TEST _TARGET_NAME)
set(one_value_arguments
)
set(multi_value_arguments
SOURCES
COMPILE_OPTIONS
COMPILE_DEFINITION
LINK_LIBRARIES
LINK_OPTIONS
)
cmake_parse_arguments(_add_cmocka_test
""
"${one_value_arguments}"
"${multi_value_arguments}"
${ARGN}
)
if (NOT DEFINED _add_cmocka_test_SOURCES)
message(FATAL_ERROR "No sources provided for target ${_TARGET_NAME}")
endif()
add_executable(${_TARGET_NAME} ${_add_cmocka_test_SOURCES})
if (DEFINED _add_cmocka_test_COMPILE_OPTIONS)
target_compile_options(${_TARGET_NAME}
PRIVATE ${_add_cmocka_test_COMPILE_OPTIONS}
)
endif()
if (DEFINED _add_cmocka_test_LINK_LIBRARIES)
target_link_libraries(${_TARGET_NAME}
PRIVATE ${_add_cmocka_test_LINK_LIBRARIES}
)
endif()
if (DEFINED _add_cmocka_test_LINK_OPTIONS)
set_target_properties(${_TARGET_NAME}
PROPERTIES LINK_FLAGS
${_add_cmocka_test_LINK_OPTIONS}
)
endif()
add_test(${_TARGET_NAME}
${TARGET_SYSTEM_EMULATOR} ${_TARGET_NAME}
)
endfunction (ADD_CMOCKA_TEST)
AddMockedTest:
function(add_mocked_test name)
# parse arguments passed to the function
set(options )
set(oneValueArgs )
set(multiValueArgs SOURCES MOCKS COMPILE_OPTIONS LINK_LIBRARIES LINK_OPTIONS)
cmake_parse_arguments(ADD_MOCKED_TEST "${options}" "${oneValueArgs}"
"${multiValueArgs}" ${ARGN} )
# create link flags for mocks
set(link_flags "")
foreach (mock ${ADD_MOCKED_TEST_MOCKS})
set(link_flags "${link_flags} -Wl,--wrap=${mock}")
endforeach(mock)
# define test
add_cmocka_test(test_${name}
SOURCES test_${name}.c ${ADD_MOCKED_TEST_SOURCES}
COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS}
${ADD_MOCKED_TEST_COMPILE_OPTIONS}
LINK_LIBRARIES ${CMOCKA_LIBRARIES}
${ADD_MOCKED_TEST_LINK_LIBRARIES}
LINK_OPTIONS ${link_flags} ${ADD_MOCKED_TEST_LINK_OPTIONS})
# allow using includes from src/ directory
target_include_directories(test_${name} PRIVATE ${CMAKE_SOURCE_DIR}/src)
endfunction(add_mocked_test)
I'm struggling trying to cross-compile a wxWidgets app for a BBB from a Debian 9 PC.
After a lot of failures, i've found what seemed to be the solution: multiarch. So i added an armhf architecture, installed the arm-gcc compiler, the links:armhf and the libgtk2.0-dev:armhf, twithout caring too much about the removal of what was already present 'cause i thought it was garbage due to so much different attempts.
Now i tried to recompile the widgets for the i386 and it complains about the lack of the GTK2-dev libraries.
The apt-get install command gives me this:
$ sudo apt-get install libgtk2.0-dev:i386
Lettura elenco dei pacchetti... Fatto
Generazione albero delle dipendenze
Lettura informazioni sullo stato... Fatto
I seguenti pacchetti sono stati installati automaticamente e non sono più richiesti:
gir1.2-atk-1.0:armhf gir1.2-freedesktop:armhf gir1.2-gdkpixbuf-2.0:armhf gir1.2-glib-2.0:armhf gir1.2-pango-1.0:armhf libasan3:armhf libatk1.0-0:armhf
libatomic1:armhf libavahi-client3:armhf libavahi-common-data:armhf libavahi-common3:armhf libbsd0:armhf libc6-dev:armhf libcairo-gobject2:armhf
libcairo-script-interpreter2:armhf libcairo2:armhf libcups2:armhf libdatrie1:armhf libdbus-1-3:armhf libexpat1:armhf libexpat1-dev:armhf libffi6:armhf
libfontconfig1:armhf libfreetype6:armhf libgail-common:armhf libgail18:armhf libgcc-6-dev:armhf libgcrypt20:armhf libgdk-pixbuf2.0-0:armhf
libgirepository-1.0-1:armhf libglib2.0-0:armhf libgmp10:armhf libgnutls30:armhf libgomp1:armhf libgpg-error0:armhf libgraphite2-3:armhf
libgssapi-krb5-2:armhf libgtk2.0-0:armhf libharfbuzz-gobject0:armhf libharfbuzz-icu0:armhf libharfbuzz0b:armhf libhogweed4:armhf libice-dev:armhf
libice6:armhf libicu57:armhf libidn11:armhf libjbig0:armhf libjpeg62-turbo:armhf libk5crypto3:armhf libkeyutils1:armhf libkrb5-3:armhf
libkrb5support0:armhf liblz4-1:armhf liblzo2-2:armhf libnettle6:armhf libp11-kit0:armhf libpango-1.0-0:armhf libpangocairo-1.0-0:armhf
libpangoft2-1.0-0:armhf libpangoxft-1.0-0:armhf libpcre16-3:armhf libpcre3-dev:armhf libpcre32-3:armhf libpcrecpp0v5:armhf libpixman-1-0:armhf
libpng-dev:armhf libpng16-16:armhf libpthread-stubs0-dev:armhf libsm-dev:armhf libsm6:armhf libstdc++-6-dev:armhf libstdc++6:armhf libsystemd0:armhf
libtasn1-6:armhf libthai0:armhf libtiff5:armhf libubsan0:armhf libx11-6:armhf libx11-dev:armhf libxau-dev:armhf libxau6:armhf libxcb-render0:armhf
libxcb-render0-dev:armhf libxcb-shm0:armhf libxcb-shm0-dev:armhf libxcb1:armhf libxcb1-dev:armhf libxcomposite-dev:armhf libxcomposite1:armhf
libxcursor-dev:armhf libxcursor1:armhf libxdamage-dev:armhf libxdamage1:armhf libxdmcp-dev:armhf libxdmcp6:armhf libxext-dev:armhf libxext6:armhf
libxfixes-dev:armhf libxfixes3:armhf libxft2:armhf libxi-dev:armhf libxi6:armhf libxinerama-dev:armhf libxinerama1:armhf libxrandr-dev:armhf
libxrandr2:armhf libxrender-dev:armhf libxrender1:armhf linux-libc-dev:armhf meld zlib1g-dev:armhf
Usare "sudo apt autoremove" per rimuoverli.
The following additional packages will be installed:
gir1.2-gtk-2.0 libatk1.0-dev libcairo2-dev libfontconfig1-dev libfreetype6-dev libgdk-pixbuf2.0-dev libglib2.0-dev libgraphite2-dev libharfbuzz-dev
libicu-dev libpango1.0-dev libpixman-1-dev libxft-dev
Pacchetti suggeriti:
libcairo2-doc icu-doc
I seguenti pacchetti saranno RIMOSSI:
gir1.2-gtk-2.0:armhf libatk1.0-dev:armhf libcairo2-dev:armhf libfontconfig1-dev:armhf libfreetype6-dev:armhf libgdk-pixbuf2.0-dev:armhf
libglib2.0-dev:armhf libgraphite2-dev:armhf libgtk2.0-dev:armhf libharfbuzz-dev:armhf libicu-dev:armhf libpango1.0-dev:armhf libpixman-1-dev:armhf
libxft-dev:armhf
I seguenti pacchetti NUOVI saranno installati:
gir1.2-gtk-2.0 libatk1.0-dev libcairo2-dev libfontconfig1-dev libfreetype6-dev libgdk-pixbuf2.0-dev libglib2.0-dev libgraphite2-dev libgtk2.0-dev
libharfbuzz-dev libicu-dev libpango1.0-dev libpixman-1-dev libxft-dev
0 aggiornati, 14 installati, 14 da rimuovere e 0 non aggiornati.
È necessario scaricare 0 B/31,8 MB di archivi.
Dopo quest'operazione, verranno occupati 5.458 kB di spazio su disco.
Continuare? [S/n] n
Interrotto.
I googled a lot, and seems to me that the libgtk are not ready for multiarch.
But my understanding is limited, and so i'm (again) stuck against a wall.
What should i do to compile for both the architectures (linking the right libraries)?
Could i just download the two debs and keep them extracted on another folder? If yes, how to link them corretcly?
Should i change the control file inside the .dev files? if yes, how exactly?
I want to compile my C99 project with the flag -fsanitize=address. I need to use CMake and to compile with gcc on a Centos 7 distribution.
I currently have gcc 7.3.1 and cmake 3.13.4.
I added the -fsanitize=address flag in the compilation flags list and in the linker, but it still fails to compile with the following error:
[ 6%] Building C object CMakeFiles/last.dir/src/ast/ast.c.o
[ 13%] Building C object CMakeFiles/last.dir/src/ast/ast_printer.c.o
[ 20%] Building C object CMakeFiles/last.dir/src/ast/cleaner.c.o
[ 26%] Linking C static library liblast.a
[ 26%] Built target last
[ 33%] Building C object CMakeFiles/lexecution.dir/src/execution/exec_parser.c.o
[ 40%] Building C object CMakeFiles/lexecution.dir/src/execution/exec_utils.c.o
[ 46%] Building C object CMakeFiles/lexecution.dir/src/execution/exec_func.c.o
[ 53%] Building C object CMakeFiles/lexecution.dir/src/execution/exec_parser_options.c.o
[ 60%] Linking C static library liblexecution.a
[ 60%] Built target lexecution
[ 66%] Building C object CMakeFiles/lutils.dir/tests/utils/utils.c.o
[ 73%] Linking C static library liblutils.a
[ 73%] Built target lutils
[ 80%] Building C object CMakeFiles/lhist.dir/src/history/history.c.o
[ 86%] Linking C static library liblhist.a
[ 86%] Built target lhist
[ 93%] Building C object CMakeFiles/42sh.dir/src/execution/exec_42sh.c.o
[100%] Linking C executable 42sh
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/libasan_preinit.o:(.preinit_array+0x0) : undefined reference to « __asan_init_v1 »
CMakeFiles/42sh.dir/src/execution/exec_42sh.c.o : In function « _GLOBAL__sub_I_00099_1_flag » :
/home/lyro/Documents/customshell/src/execution/exec_42sh.c:304 : undefined reference to « __asan_init_v1 »
liblexecution.a(exec_parser.c.o) : In function « _GLOBAL__sub_I_00099_1_parser_new_from_string » :
/home/lyro/Documents/customshell/src/execution/exec_parser.c:1105 : undefined reference to « __asan_init_v1 »
liblexecution.a(exec_utils.c.o) : In function « _GLOBAL__sub_I_00099_0_get_args_array » :
/home/lyro/Documents/customshell/src/execution/exec_utils.c:242 : undefined reference to « __asan_init_v1 »
liblexecution.a(exec_func.c.o) : In function « _GLOBAL__sub_I_00099_1_exec_ast » :
/home/lyro/Documents/customshell/src/execution/exec_func.c:187 : undefined reference to « __asan_init_v1 »
liblexecution.a(exec_parser_options.c.o):/home/lyro/Documents/customshell/src/execution/exec_parser_options.c:149 : more undefined references to « __asan_init_v1 »
collect2: error: ld returned 1 execution state code
make[2]: *** [42sh] Error 1
make[1]: *** [CMakeFiles/42sh.dir/all] Error 2
make: *** [all] Error 2
Here is my CMakeLists.txt file, I can't find what I am missing..
cmake_minimum_required(VERSION 3.0)
project(42SH LANGUAGES C)
add_compile_options(-Wall -Wextra -Werror -pedantic -fsanitize=address -g -std=c99)
add_library(last ${CMAKE_SOURCE_DIR}/src/ast/ast.c ${CMAKE_SOURCE_DIR}/src/ast/ast_printer.c ${CMAKE_SOURCE_DIR}/src/ast/cleaner.c)
target_include_directories(last PUBLIC ${CMAKE_SOURCE_DIR}/src/ast)
add_library(lutils ${CMAKE_SOURCE_DIR}/tests/utils/utils.c)
target_include_directories(lutils PUBLIC ${CMAKE_SOURCE_DIR}/tests/utils)
target_link_libraries(lutils -fsanitize=address lexecution)
add_library(lexecution ${CMAKE_SOURCE_DIR}/src/execution/exec_parser.c ${CMAKE_SOURCE_DIR}/src/execution/exec_utils.c ${CMAKE_SOURCE_DIR}/src/execution/exec_func.c ${CMAKE_SOURCE_DIR}/src/execution/exec_parser_options.c)
target_include_directories(lexecution PUBLIC ${CMAKE_SOURCE_DIR}/src/ast)
target_link_libraries(lexecution -fsanitize=address last)
add_library(lhist ${CMAKE_SOURCE_DIR}/src/history/history.c)
target_include_directories(lhist PUBLIC ${CMAKE_SOURCE_DIR}/src/history)
add_executable(42sh src/execution/exec_42sh.c)
target_link_libraries(42sh -fsanitize=address lexecution)
target_link_libraries(42sh -fsanitize=address lutils)
target_link_libraries(42sh -fsanitize=address last)
target_link_libraries(42sh -fsanitize=address lhist)
add_custom_target(submit
COMMENT "Compiled for submission. Sanitizers ON."
COMMENT "Don't use Valgrind on this executable. It will not work."
DEPENDS 42sh
)
add_custom_target(tests
COMMAND pytest ${CMAKE_SOURCE_DIR}/tests
COMMENT "Running testsuite..."
DEPENDS 42sh
)
add_custom_target(doc
COMMENT "Compiling documentation"
COMMAND doxygen ${CMAKE_SOURCE_DIR}/doc/Doxyfile
COMMENT "Compiled documentation"
)
Your toolchain is somewhat confused about which version of GCC it is and
the linkage failure is one consequence of that confusion.
You tell us you are using GCC 7.3.1, but the first of the unresolved references to __asan_init_v1:
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/libasan_preinit.o:(.preinit_array+0x0) : undefined reference to « __asan_init_v1
shows that the gcc that invoked the linkage with -fsanitize=address linked the address santitizer initialization code
from your installation of GCC 4.8.5.
In GCC 7, the file libasan_preinit.o makes no references to __asan_init_v1, as seen on
the laptop I'm working on just now:
$ nm /usr/lib/gcc/x86_64-linux-gnu/7/libasan_preinit.o
U __asan_init
0000000000000000 D __local_asan_preinit
It calls __asan_init, which is indeed defined in the toolchain's libasan:
$ nm -D /usr/lib/gcc/x86_64-linux-gnu/7/libasan.so | grep __asan_init
00000000000ecdb0 T __asan_init
On the other hand, in GCC 4.8.5, libasan did not define the function __asan_init
and did define __asan_init_v1:
:~/Downloads/gcc-4.8.5$ grep -r '__asan_init_v'
gcc/ChangeLog: * sanitizer.def: Rename __asan_init to __asan_init_v1.
gcc/sanitizer.def:DEF_SANITIZER_BUILTIN(BUILT_IN_ASAN_INIT, "__asan_init_v1",
libsanitizer/asan/asan_interface_internal.h: void __asan_init_v1() SANITIZER_INTERFACE_ATTRIBUTE;
libsanitizer/asan/asan_interface_internal.h: #define __asan_init __asan_init_v1
There, __asan_init was just an internal #define aliasing the real function __asan_init_v1, as
per libsanitizer/asan/asan_interface_internal.h, but in that file in GCC 7
// This function should be called at the very beginning of the process,
// before any instrumented code is executed and before any call to malloc.
SANITIZER_INTERFACE_ATTRIBUTE void __asan_init();
it is a real function, as reported by nm.
So the thrust of the evidence is that you are linking against the libasan of GCC 7.3.1
but also linking the library initialization code of GCC 4.8.5. I have no visibility of
how you've landed in this GCC version mash-up - could be a packaging bug, for all I know - but
you'll have to fix that to solve these linkage failures.
I build a gcc toolchain using Crosstool-ng, but the resulting g++ does not compile and/or link C++11 exceptions.
If I try to compile:
#include <exception>
int main()
{
std::current_exception();
}
via:
arm-none-linux-gnueabihf-g++ -std=c++11 foo.cpp
I get:
foo.cpp: In function 'int main()':
foo.cpp:5:9: error: 'current_exception' is not a member of 'std'
std::current_exception();
^~~
However, if I additionally provide cortex-a9 as cpu the haviour changes:
arm-none-linux-gnueabihf-g++ -mcpu=cortex-a9 -std=c++11 foo.cpp
results in:
/tmp/cc13AEjE.o: In function `main':
foo.cpp:(.text+0x14): undefined reference to `std::current_exception()'
foo.cpp:(.text+0x20): undefined reference to
`std::__exception_ptr::exception_ptr::~exception_ptr()'
collect2: error: ld returned 1 exit status
I greped within the toolchain for current_exception and it seems good for me:
grep -r -e current_exception arm-none-linux-gnueabihf/
Binary file arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/sysroot/lib/libstdc++.so.6.0.22 matches
Binary file arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/sysroot/lib/libstdc++.a matches
Binary file arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/sysroot/lib/libsupc++.a matches
arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/include/c++/6.3.0/cxxabi.h: __cxa_current_exception_type() _GLIBCXX_NOTHROW __attribute__ ((__pure__));
arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/include/c++/6.3.0/future: (*_M_result)->_M_error = current_exception();
arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/include/c++/6.3.0/future: (*_M_result)->_M_error = current_exception();
arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/include/c++/6.3.0/bits/exception_ptr.h: exception_ptr current_exception() _GLIBCXX_USE_NOEXCEPT;
arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/include/c++/6.3.0/bits/exception_ptr.h: friend exception_ptr std::current_exception() _GLIBCXX_USE_NOEXCEPT;
arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/include/c++/6.3.0/bits/exception_ptr.h: return current_exception();
arm-none-linux-gnueabihf/arm-none-linux- gnueabihf/include/c++/6.3.0/bits/nested_exception.h: nested_exception() noexcept : _M_ptr(current_exception()) { }
The settings I used for Crosstool-ng are:
arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-g++ -v
Using built-in specs.
COLLECT_GCC=x-tools/arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-g++
COLLECT_LTO_WRAPPER=/home/builduser/x-tools/arm-none-linux-gnueabihf/libexec/gcc/arm-none-linux-gnueabihf/6.3.0/lto-wrapper
Target: arm-none-linux-gnueabihf
Configured with: /home/builduser/build/.build/src/gcc-6.3.0/configure
--build=x86_64-build_pc-linux-gnu
--host=x86_64-build_pc-linux-gnu
--target=arm-none-linux-gnueabihf
--prefix=/home/builduser/x-tools/arm-none-linux-gnueabihf
--with-sysroot=/home/builduser/x-tools/arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/sysroot
--enable-languages=c,c++
--with-float=hard
--with-pkgversion='crosstool-NG crosstool-ng-1.23.0'
--disable-sjlj-exceptions
--enable-__cxa_atexit
--disable-libmudflap
--disable-libgomp
--disable-libssp
--disable-libquadmath
--disable-libquadmath-support
--disable-libsanitizer
--disable-libmpx
--with-gmp=/home/builduser/build/.build/arm-none-linux-gnueabihf/buildtools
--with-mpfr=/home/builduser/build/.build/arm-none-linux-gnueabihf/buildtools
--with-mpc=/home/builduser/build/.build/arm-none-linux-gnueabihf/buildtools
--with-isl=/home/builduser/build/.build/arm-none-linux-gnueabihf/buildtools
--disable-lto
--with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++ -lm'
--enable-threads=posix
--enable-target-optspace
--disable-plugin
--disable-nls
--disable-multilib
--with-local-prefix=/home/builduser/x-tools/arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/sysroot
--enable-long-long
Thread model: posix
gcc version 6.3.0 (crosstool-NG crosstool-ng-1.23.0)
Building a std::array example works fine.
EDIT:
If I include the CT_ARCH_CPU="cortex-a9" option to my crostool-ng configuration (which leads to a --with-cpu=cortex-a9 within g++) the std::current_exception example works fine.
So the question is:
Why does the cpu variant the compiler should generate code for and the way the cpu variant is told to the toolchain (-mcpu at runtime vs. inbuild --with-cpu) is influencing the ability to compile/link std::current_exception?
I have a trash with my physical server and the MySQL Bdd.
The technical team has restoring data (bdd) with a shift about System.
I have problem about download some file that contain :
Le contenu de l'élément est manquant :
élément : workspace://SpacesStore/1654e155-5c8c-480a-883a-6768dbf96b7e
lecteur : ContentAccessor[ contentUrl=store://2016/5/30/11/47/b60f71a2-5d63-483b-a6af-5fc34feb0899.bin, mimetype=application/vnd.oasis.opendocument.spreadsheet, size=0, encoding=UTF-8, locale=fr_FR]
Veuillez contacter votre administrateur système.
Do you have any idea for recuperation the good file in the system ?