我有一个静态库,该库由多个遍组成,并且是Declare @YOurTable table (ToEval varchar(50))
Insert Into @YOurTable values
('0+6+6+6+0+0+0')
,('5+6+25')
Select A.*
,B.*
From @YOurTable A
Cross Apply (
Select Value = sum(Value)
From (
Select Value = B.i.value('(./text())[1]', 'int')
From (Select x = Cast('<x>' + replace(ToEval,'+','</x><x>')+'</x>' as xml)) A
Cross Apply x.nodes('x') AS B(i)
) B1
) B
的一部分。我想使其动态并创建一个dylib文件,所以我可以调用ToEval Value
0+6+6+6+0+0+0 18
5+6+25 36
,加载创建的opt
并传递所需的LLVM传递。我正在使用LLVM 7.0。
我在Xcode的帮助下创建了这样的dylib文件(通过向已有的动态库目标添加附加遍历),但是我找不到任何信息,以及如何借助CMake进行创建。
此刻,该库的CMake文件如下所示:
opt
预期会执行以下命令:
.dylib
我不清楚,是否可以通过给每个通道一个add_llvm_library(MyLibrary
Pass1.cpp
Pass2.cpp
Pass3.cpp
...
PassN.cpp
DEPENDS
intrinsics_gen
)
文件来保留库的结构,还是必须修改库的结构。
答案 0 :(得分:0)
对此进行了尝试,以应对多重依赖关系的问题,该依赖关系要求包含多个库。链接库需要链接另一个库。稍后,以LLVM中提供的Hello CMakeLists.txt
为例。写add_llvm_library
而不是add_llvm_loadablemodule
,写成CMakeLists.txt
if (WIN32 OR CYGWIN)
set(LLVM_LINK_COMPONENTS ...)
endif()
add_llvm_loadable_module(Mylib_Dylib
Pass1.cpp
Pass2.cpp
...
PassN.cpp
PLUGIN_TOOL
opt
)
它构建了Mylib.dylib,并且可以从中调用密码。