问题描述
我有一个具有下一个结构的 CMake 项目:
{
"assignments": {
"uuIdKey1": {...},"uuIdKey2": {...},"uuIdKey3": {...}
}
}
并且输出树是:
├── CMakeLists.txt
├── app
│ ├── CMakeLists.txt
│ └── main.cpp
│
└── theLib
├── CMakeLists.txt
├── internal
│ ├── internal.cpp
│ └── internal.h
├── myprint.cpp
└── myprint.h
如果我在linux下编译程序,一切正常,但是当我在Windows下编译时,编译正常,但app.exe不执行; 我收到下一个错误:
├── app
│ └── app.exe
├── theLib
│ └── libtheLib.dll
我怀疑不要链接 internal.cpp,因为当我将其程序内联到 internal.h 中时,工作正常。
有什么帮助吗?
文件如下: root::CMakeLists.txt
*app.exe: error while loading shared libraries: libtheLib.dll: cannot open shared object file: No such file or directory.*
app::CMakeLists.txt
cmake_minimum_required(VERSION 3.13)
set(CMAKE_PROJECT_NAME "testProject")
project(${CMAKE_PROJECT_NAME})
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
#set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(BIN_PATH "binAPP")
set(TMP_BUILD "tmpBuild")
set(LIB_PATH "theLib")
set(APP_PATH "app")
set(OUT_PATH ${CMAKE_SOURCE_DIR}/../${BIN_PATH})
set(BUILD_TEMP_PATH ${OUT_PATH}/${TMP_BUILD})
add_subdirectory(${LIB_PATH} ${BUILD_TEMP_PATH}/${LIB_PATH})
include_directories(${LIB_PATH})
add_subdirectory(${APP_PATH} "${BUILD_TEMP_PATH}/${APP_PATH}")
include_directories(${APP_PATH})
theLib::CMakeLists.txt
cmake_minimum_required(VERSION 3.13)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${OUT_PATH}/${APP_PATH}) #/${APP_PATH}
include_directories(
)
set(SOURCES
main.cpp
)
add_executable(${APP_PATH} ${SOURCES})
add_dependencies(${APP_PATH} ${LIB_PATH})
target_link_libraries(${APP_PATH} PUBLIC ${LIB_PATH} )
提前致谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)