我有以下项目结构。
<root
CMakeLists.txt
<exec_folder
CMakeLists.txt
...
<lib_folder
CMakeLists.txt
...
在exec_folder中,我有一个CLI可执行文件,因此,有目的地在另一个目录中创建了目标。
exec_folder CMakeLists.txt
...
add_executable (foo ...)
target_link_libraries(foo bar)
lib_folder CMakeLists.txt
...
add_library(bar ...)
现在我遇到了...cannot open file 'XXX.lib'
错误。
通常,当库目录嵌套到主目录中时,我会使用add_subdirectory
,但是现在它们位于同一级别。
答案 0 :(得分:0)
我只是在这里猜测,因为您没有显示根CMakeLists.txt中包含的内容。但是基于声明您没有为库使用add_subdirectory(exec_folder)
add_subdirectory(lib_folder)
的陈述,您需要进行以下更改。
CMakeLists.txt根目录必须同时包含两者:
target_link_libraries(foo bar)
否则,将不会构建栏,bar.lib
只会搜索一些随机的XXX.lib
。如果错误实际上是with torch.enable_grad():
,那么您会有更大的问题。