1

最后,经过一整天的工作,我已经制作了基于 CMake 的项目,可以在 Windows 上成功编译项目(我一直在 Linux 上开发它),它甚至可以很好地链接在一起,不是吗?现在我启动程序并繁荣,它无法找到 dll 库。

所以,问题:

我有 CMake 项目,里面有库和可执行文件,该可执行文件正在使用项目的库。我在项目中也有许多第三方库。它可以很好地编译和链接。当我尝试启动它时,它会打印找不到项目库的错误。我已将其复制到可执行文件的目录中。现在它打印出没有找到第 3 方库,我已将它们全部复制到 exe 的目录中。现在它打印出 gcc 的库未找到,所以我已将 C:\MinGW\bin 添加到路径中,现在它可以正常启动了。

但我觉得这不是正确的方法。我想让我的队友(新)免于发射时的痛苦。

4

1 回答 1

2

要么静态链接所有内容,要么install()在 CMakeLists.txt 中添加必要的调用。将所有需要的库安装到同一目录并从那里运行可执行文件。

如果你想从 CMAKE_BINARY_DIR 运行可执行文件,你可以

set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} )
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} )
set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} )

这将使 CMake 将链接的二进制文件放入同一目录中。

至于 gcc 运行时 - 除了复制 dll 或静态链接之外别无他法。

于 2012-10-27T16:32:40.530 回答