Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lack of libicuucd67.dll when run the OMEdit.exe after build correctly #11478

Closed
chygithub2020 opened this issue Oct 30, 2023 · 8 comments · Fixed by #11490
Closed

lack of libicuucd67.dll when run the OMEdit.exe after build correctly #11478

chygithub2020 opened this issue Oct 30, 2023 · 8 comments · Fixed by #11490

Comments

@chygithub2020
Copy link

Description

os:windows 10 home
build:cmake
introduction: REDEME.Windows.md
code branch: master
details:build the project correctly but OMEdit.exe can not work and show the information that lack of libicuucd67.dll.(Some modules can work correctly such as OMNotebook )

@anotheruserofgithub
Copy link
Contributor

I had the same issue yesterday. Some libraries are not copied in the bin folder with CMake. Note that it works if you launch OMEdit within mingw64:

./install_cmake/bin/OMEdit.exe

As a workaround, building with Make does produce an executable that can be launched by double-clicking the file.

@chygithub2020
Copy link
Author

Thank you so much!I have solved the problem.I find the lacked files in "OMDev\tools\msys\mingw64\bin" and copy them to "install_cmake/bin" so that it works.I guess it was caused by the neglect in install.

@mahge
Copy link
Contributor

mahge commented Oct 30, 2023

@anotheruserofgithub @chygithub2020 can you tell me exactly how you configured the project? i.e.,

  • Are you using OMDev or an fresh MSYS/MinGW installation?
  • The CMake command you used to configure the project.

The error reported here should not happen and the DLLs are supposed to be copied for you automatically. I can see that we copy libicuuc67.dll but not libicuucd67.dll. Seems like this has something to do with a debug build although I am not sure why it happened now since OMDev has not been changed recently as far as I know.

@anotheruserofgithub
Copy link
Contributor

I'm using OMDev and I was using these instructions. I had not compiled on Windows since February, so yesterday I just updated the OpenModelica repository to master, cleaned up everything, and ran the cmake+make commands. If I remember correctly, there are several (all?) debug versions of libicu*.dll that are missing in bin at the end, and maybe other libraries as well but I didn't check.

Also, I noticed that the OMEdit executable that I compiled with CMake was about 170MB while with Make it is about 280MB, is that expected? (It was working fine, but maybe something to do with debug/release modes, or -g compiler option?)

@chygithub2020
Copy link
Author

I copy libicuucd67.dll and libicudtd67.dll.And I use the OMDEV for the build.And the cmake commands are as follows:

  • cmake -S . -B build_cmake -Wno-dev -G "MSYS Makefiles"
  • cd build_cmake/
  • make -j8 install -Oline

@mahge
Copy link
Contributor

mahge commented Oct 30, 2023

I'm using OMDev and I was using these instructions. I had not compiled on Windows since February, so yesterday I just updated the OpenModelica repository to master, cleaned up everything, and ran the cmake+make commands. If I remember correctly, there are several (all?) debug versions of libicu*.dll that are missing in bin at the end, and maybe other libraries as well but I didn't check.

I see. Then something must have changed recently and I did not notice. I will check properly and add the missing DLLs.

Also, I noticed that the OMEdit executable that I compiled with CMake was about 170MB while with Make it is about 280MB, is that expected? (It was working fine, but maybe something to do with debug/release modes, or -g compiler option?)

It might be related to static vs dynamic linking of the needed libraries. If so, I don't think it should affect how OMEdit works at all as long as it starts up.

@mahge
Copy link
Contributor

mahge commented Oct 30, 2023

I copy libicuucd67.dll and libicudtd67.dll.And I use the OMDEV for the build.And the cmake commands are as follows:

  • cmake -S . -B build_cmake -Wno-dev -G "MSYS Makefiles"
  • cd build_cmake/
  • make -j8 install -Oline

Looks perfectly fine. I am not sure why the required DLLs changed suddenly but I will check and see if we can add them to the installation anyway.

mahge added a commit to mahge/OpenModelica that referenced this issue Nov 2, 2023
  - These debug versions of required DLLs were not copied to the installation
    directory.

  - This is a temporary solution. We need to find a way where we copy only
    the required DLLs for the current build type. One way to do this is
    using CMakes own `RUNTIME_DEPENDENCIES` option on install commands.
    Unfortunately, that is only available on CMake version > 3.21. So might
    need to do it manually for now.

  - Fixes OpenModelica#11478.
mahge added a commit that referenced this issue Nov 2, 2023
  - These debug versions of required DLLs were not copied to the installation
    directory.

  - This is a temporary solution. We need to find a way where we copy only
    the required DLLs for the current build type. One way to do this is
    using CMakes own `RUNTIME_DEPENDENCIES` option on install commands.
    Unfortunately, that is only available on CMake version > 3.21. So might
    need to do it manually for now.

  - Fixes #11478.
@mahge
Copy link
Contributor

mahge commented Nov 2, 2023

This should be fixed with #11490. If you encounter other issues with the CMake build, please feel free to open new tickets.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants