(求助!)FrameWorkLaunch模式下在op_host中新增一个模块,使得在算子host侧的AddTilingFunc函数中可以调用
收藏回复举报
(求助!)FrameWorkLaunch模式下在op_host中新增一个模块,使得在算子host侧的AddTilingFunc函数中可以调用
t('forum.solved') 已解决
新人帖
发表于2024-05-13 15:17:50
0 查看

1、实现目的:我想在op_host中新增一个模块,使得在算子host侧的AddTilingFunc函数中可以调用。如以下图所示,我想在op_host/add_custom.cpp的AddTilingFunc中使用op_host/utils_module/func1.h中声明的print_hello()方法

cke_877.png

2、我的实现过程:

在op_host中新增utils_module文件夹,里面有inc/func.h和src/func.cpp,还有一个CMakeLists.txt。其中:

(1)utils_module/inc/func1.h内容

#include <iostream>

extern "C" {

void print_hello();

}

(2)utils_module/src/func1.cpp内容

#include"func1.h"

void print_hello()

{

std::cout << "------------------->hello world!" << std::endl;

}

(3)utils_module/CMakeLists.txt内容

# 设置子模块的名称

set(SUBMODULE_NAME utils)

# 设置包含文件的路径

set(INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/inc)

include_directories(${INCLUDE_DIR})

message(STATUS "------------1--------------------------env CMAKE_CURRENT_SOURCE_DIR: ${CMAKE_CURRENT_SOURCE_DIR}")

# 收集所有源文件

file(GLOB SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)

# 构建动态链接库

add_library(utils SHARED ${SOURCE_FILES})

# 将动态链接库安装到总项目中

install(TARGETS ${SUBMODULE_NAME}

LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}

RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})

# 将 include 目录添加到总项目的 include 路径中

target_include_directories(${SUBMODULE_NAME} PUBLIC

$<BUILD_INTERFACE:${INCLUDE_DIR}>

$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)

(4)①在op_host目录下CMakeLists.txt中添加utils_module:

add_subdirectory(utils_module)

②然后在op_host/add_custom.cpp的TilingFunc中调用print_hello()函数

cke_41663.png

(5)执行算子工程的build.sh

3、出现的问题,这是表示我编译生成的build_out/autogen下的libascend_all_ops.so调用op_host/utils_module模块打包成的libutils.so失败?

cke_91245.png

4、我的猜测:是因为我的CMakeLists.txt写的有问题嘛,恳请各位帮忙看看!我把我的工程放到附件中

我要发帖子