-
这个有两个target,一个是static,一个是binary
但是我不想把这个module库和它的依赖项打包合并成一个静态库, 所以我不能在 add_repositories("masx200/xmake-repo https://gitee.com/masx200/xmake-repo.git");
add_repositories(
"masx200/xmake-repo https://ghproxy.com/https://github.com/masx200/xmake-repo.git");
add_rules("mode.debug", "mode.release");
add_requires("leetcode-treenode-cpp 1.1.6");
add_requires("vcpkg::cppunit");
set_languages("c17", "cxx20");
target("insert-into-a-binary-search-tree");
set_kind("static");
set_languages("c++20");
set_policy("build.c++.modules", true);
add_files("*.ixx",{install=true});
target_end();
target("test");
set_kind("binary");
set_languages("c++20");
set_policy("build.c++.modules", true);
add_files("*.ixx");
add_files("test.cpp");
add_packages("vcpkg::cppunit");
add_packages("leetcode-treenode-cpp");
target_end();
编译 insert-into-a-binary-search-tree会失败,但是编译test会成功. xmake build -v insert-into-a-binary-search-tree
[ 43%]: compiling.module.release leetcode_test.insert_into_a_binary_search_tree.PostOrderTraversal
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.35.32215\\bin\\HostX64\\x64\\cl.exe" -c -TP -nologo -O2 -fp:fast -std:c++20 /EHsc -experimental:module -DNDEBUG -TP -ifcOutput build\.gens\test\windows\x64\release\rules\modules\cache\574a3743\leetcode_test.insert_into_a_binary_search_tree.PostOrderTraversal.ifc -interface -Fobuild\.objs\insert-into-a-binary-search-tree\windows\x64\release\PostOrderTraversal.ixx.obj PostOrderTraversal.ixx
[ 43%]: compiling.module.release leetcode_test.insert_into_a_binary_search_tree.debugTreeNode
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.35.32215\\bin\\HostX64\\x64\\cl.exe" -c -TP -nologo -O2 -fp:fast -std:c++20 /EHsc -experimental:module -DNDEBUG -TP -ifcOutput build\.gens\test\windows\x64\release\rules\modules\cache\574a3743\leetcode_test.insert_into_a_binary_search_tree.debugTreeNode.ifc -interface -Fobuild\.objs\insert-into-a-binary-search-tree\windows\x64\release\debugTreeNode.ixx.obj debugTreeNode.ixx
[ 43%]: compiling.module.release leetcode_test.insert_into_a_binary_search_tree.EqualTreeNode
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.35.32215\\bin\\HostX64\\x64\\cl.exe" -c -TP -nologo -O2 -fp:fast -std:c++20 /EHsc -experimental:module -DNDEBUG -TP -ifcOutput build\.gens\test\windows\x64\release\rules\modules\cache\574a3743\leetcode_test.insert_into_a_binary_search_tree.EqualTreeNode.ifc -interface -Fobuild\.objs\insert-into-a-binary-search-tree\windows\x64\release\EqualTreeNode.ixx.obj EqualTreeNode.ixx
[ 43%]: compiling.module.release leetcode_test.insert_into_a_binary_search_tree.Solution
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.35.32215\\bin\\HostX64\\x64\\cl.exe" -c -TP -nologo -O2 -fp:fast -std:c++20 /EHsc -experimental:module -DNDEBUG -TP -ifcOutput build\.gens\test\windows\x64\release\rules\modules\cache\574a3743\leetcode_test.insert_into_a_binary_search_tree.Solution.ifc -interface -Fobuild\.objs\insert-into-a-binary-search-tree\windows\x64\release\index.ixx.obj index.ixx
[ 43%]: compiling.module.release leetcode_test.insert_into_a_binary_search_tree.HashTreeNode
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.35.32215\\bin\\HostX64\\x64\\cl.exe" -c -TP -nologo -O2 -fp:fast -std:c++20 /EHsc -experimental:module -DNDEBUG -TP -ifcOutput build\.gens\test\windows\x64\release\rules\modules\cache\574a3743\leetcode_test.insert_into_a_binary_search_tree.HashTreeNode.ifc -interface -Fobuild\.objs\insert-into-a-binary-search-tree\windows\x64\release\HashTreeNode.ixx.obj HashTreeNode.ixx
error: index.ixx
index.ixx(9): error C2230: 无法找到模块“leetcode_treenode_cpp.TreeNode”
index.ixx(10): error C2871: “leetcode_treenode_cpp”: 具有该名称的命名空间不存在
index.ixx(15): error C2143: 语法错误: 缺少“;”(在“*”的前面)
index.ixx(15): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
index.ixx(16): error C2334: “{”的前面有意外标记;跳过明显的函数体 怎样才能将有依赖其他module库的c++module库编译为静态库? set_version("1.1.4")
add_rules("mode.debug", "mode.release")
add_requires("vcpkg::cppunit")
set_languages("c17", "cxx20")
set_project("leetcode-treenode-cpp")
target("leetcode-treenode-cpp")
set_kind("static")
add_files("*.ixx", { install = true })
target_end()
target("test")
set_kind("binary")
add_files("*.cpp")
add_packages("vcpkg::cppunit")
add_deps("leetcode-treenode-cpp")
target_end()
|
Beta Was this translation helpful? Give feedback.
Replies: 2 comments
-
Beta Was this translation helpful? Give feedback.
-
不加,当然失败了,加上。。编译静态库,又不会合并 |
Beta Was this translation helpful? Give feedback.
不加,当然失败了,加上。。编译静态库,又不会合并