Xmake 版本
3.0.0
操作系统版本和架构
Debian 6.1.124-1
描述问题
openssl依赖已经安装完毕
$ cat build/.conan/openssl/3.5.0#62d21a127982d5ddc42a83cffc147a4b/conanbuildinfo_openssl.xmake.lua
{
Emscripten_wasm_Release =
{
includedirs = {".conan2/p/b/opens307b88b6834d8/p/include"},
linkdirs = {".conan2/p/b/opens307b88b6834d8/p/lib"},
links = {"ssl", "crypto"},
frameworkdirs = {},
frameworks = {},
syslinks = {},
defines = {},
cxxflags = {},
cflags = {},
shflags = {},
ldflags = {},
__bindirs = {".conan2/p/b/opens307b88b6834d8/p/bin"},
__resdirs = {},
__srcdirs = {}
}
}
构建的时候,如下日志
[ 23%]: cache compiling.debug main.cpp
emcc -c -g -O0 -o build/.objs/rsa_example/wasm/wasm/debug/main.cpp.o main.cpp
error: @programdir/core/main.lua:329: @programdir/actions/build/main.lua:146: @programdir/modules/async/runjobs.lua:331: @programdir/modules/private/action/build/object.lua:100: @programdir/modules/core/tools/gcc.lua:1035: main.cpp:1:10: fatal error: 'openssl/rsa.h' file not found
1 | #include <openssl/rsa.h>
| ^~~~~~~~~~~~~~~
1 error generated.
stack traceback:
[C]: in function 'error'
[@programdir/core/base/os.lua:1075]:
[@programdir/modules/core/tools/gcc.lua:1035]: in function 'catch'
[@programdir/core/sandbox/modules/try.lua:123]: in function 'try'
[@programdir/modules/core/tools/gcc.lua:976]:
[C]: in function 'xpcall'
[@programdir/core/base/utils.lua:246]:
[@programdir/core/tool/compiler.lua:288]: in function 'compile'
[@programdir/modules/private/action/build/object.lua:100]: in function 'script'
[@programdir/modules/private/action/build/object.lua:131]: in function 'build_object'
[@programdir/modules/private/action/build/object.lua:171]: in function 'jobfunc'
[@programdir/modules/async/runjobs.lua:247]:
[C]: in function 'xpcall'
[@programdir/core/base/utils.lua:246]: in function 'trycall'
[@programdir/core/sandbox/modules/try.lua:117]: in function 'try'
[@programdir/modules/async/runjobs.lua:230]: in function 'cotask'
[@programdir/core/base/scheduler.lua:406]:
stack traceback:
[C]: in function 'error'
@programdir/core/base/os.lua:1075: in function 'os.raiselevel'
(...tail calls...)
@programdir/core/main.lua:329: in upvalue 'cotask'
@programdir/core/base/scheduler.lua:406: in function <@programdir/core/base/scheduler.lua:399>
期待的结果
期待在使用emcc编译的时候应该带上-I,引入依赖的头文件路径
工程配置
local emsdk = os.getenv("EMSDK")
local emsdk_cmaketoolchain = path.join(emsdk, "upstream", "emscripten", "cmake", "Modules", "Platform", "Emscripten.cmake")
add_requires("conan::openssl/3.5.0#62d21a127982d5ddc42a83cffc147a4b", {
configs = {
alias = "openssl",
options = {
"openssl/*:no_zlib=True"
},
conf = {
"tools.build:compiler_executables={'c':'emcc', 'cpp':'em++'}",
"tools.cmake.cmaketoolchain:user_toolchain=[" .. emsdk_cmaketoolchain .. "]",
}
}
})
add_rules("mode.debug", "mode.release")
target("rsa_example")
set_kind("binary")
add_files("main.cpp")
add_packages("openssl")
附加信息和错误日志
配置的日志
$ xmake f -p wasm -a wasm -vD -y -m debug
checking for emsdk directory ... emsdk
checking for emcc ... emcc
checking for git ... /usr/bin/git
checking for gzip ... /usr/bin/gzip
checking for tar ... /usr/bin/tar
checking for ping ... /usr/bin/ping
pinging the host(gitlab.com) ... 4 ms
pinging the host(github.com) ... 40 ms
pinging the host(gitee.com) ... 56 ms
finding openssl/3.5.0#62d21a127982d5ddc42a83cffc147a4b from conan ..
checking for conan::openssl/3.5.0#62d21a127982d5ddc42a83cffc147a4b ... no
installing openssl/3.5.0#62d21a127982d5ddc42a83cffc147a4b from conan ..
checking for conan ... /usr/bin/conan
/usr/bin/conan config install /opt/local-path-provisioner/workspace/harry.wongzl/xmake-v3.0.0/install/share/xmake/scripts/conan
generate /opt/local-path-provisioner/workspace/harry.wongzl/examples/wasm-examples/openssl_wasm/build/.conan/openssl/3.5.0#62d21a127982d5ddc42a83cffc147a4b/conanfile.txt ..
checking for gcc ... /usr/bin/gcc
checking for the c compiler (cc) ... gcc
checking for /usr/bin/gcc ... ok
/usr/bin/conan install . -g XmakeGenerator --profile:build=profile_build.txt --profile:host=profile_host.txt --build=missing -c "tools.build:compiler_executables={'c':'emcc', 'cpp':'em++'}" -c tools.cmake.cmaketoolchain:user_toolchain=[Emscripten.cmake]
======== Input profiles ========
Profile host:
[settings]
arch=wasm
build_type=Release
compiler=gcc
compiler.cppstd=gnu17
compiler.libcxx=libstdc++11
compiler.version=12
os=Emscripten
[conf]
tools.build:compiler_executables={'c': 'emcc', 'cpp': 'em++'}
tools.cmake.cmaketoolchain:user_toolchain=[Emscripten.cmake]
Profile build:
[settings]
arch=x86_64
build_type=Release
compiler=gcc
compiler.cppstd=gnu17
compiler.libcxx=libstdc++11
compiler.version=12
os=Linux
======== Computing dependency graph ========
Graph root
conanfile.txt: wasm-examples/openssl_wasm/build/.conan/openssl/3.5.0#62d21a127982d5ddc42a83cffc147a4b/conanfile.txt
Requirements
openssl/3.5.0#62d21a127982d5ddc42a83cffc147a4b - Cache
======== Computing necessary packages ========
Requirements
openssl/3.5.0#62d21a127982d5ddc42a83cffc147a4b:edf1e76789aeaca07d645344eaacb022f85ee784#ccfbd38fbcfdcea12cbf61be25ea6c72 - Cache
======== Installing packages ========
openssl/3.5.0: Already installed! (1 of 1)
======== Finalizing install (deploy, generators) ========
conanfile.txt: Writing generators to examples/wasm-examples/openssl_wasm/build/.conan/openssl/3.5.0#62d21a127982d5ddc42a83cffc147a4b
conanfile.txt: Generator 'XmakeGenerator' calling 'generate()'
XmakeGenerator: generating build info ..
openssl {
Emscripten_wasm_Release =
{
includedirs = {".conan2/p/b/opens307b88b6834d8/p/include"},
linkdirs = {".conan2/p/b/opens307b88b6834d8/p/lib"},
links = {"ssl", "crypto"},
frameworkdirs = {},
frameworks = {},
syslinks = {},
defines = {},
cxxflags = {},
cflags = {},
shflags = {},
ldflags = {},
__bindirs = {".conan2/p/b/opens307b88b6834d8/p/bin"},
__resdirs = {},
__srcdirs = {}
}
}
{
Emscripten_wasm_Release =
{
includedirs = {".conan2/p/b/opens307b88b6834d8/p/include"},
linkdirs = {".conan2/p/b/opens307b88b6834d8/p/lib"},
links = {"ssl", "crypto"},
frameworkdirs = {},
frameworks = {},
syslinks = {},
defines = {},
cxxflags = {},
cflags = {},
shflags = {},
ldflags = {},
__bindirs = {".conan2/p/b/opens307b88b6834d8/p/bin"},
__resdirs = {},
__srcdirs = {},
__dep_names = {}
}
}
conanfile.txt: Generating aggregated env files
conanfile.txt: Generated aggregated env files: ['conanbuild.sh', 'conanrun.sh']
Install finished successfully
finding openssl/3.5.0#62d21a127982d5ddc42a83cffc147a4b from conan ..
checking for conan::openssl/3.5.0#62d21a127982d5ddc42a83cffc147a4b ... openssl/3.5.0#62d21a127982d5ddc42a83cffc147a4b
{
linkdirs = ".conan2/p/b/opens307b88b6834d8/p/lib",
static = true,
sysincludedirs = ".conan2/p/b/opens307b88b6834d8/p/include",
links = {
"ssl",
"crypto"
},
libfiles = {
".conan2/p/b/opens307b88b6834d8/p/lib/libcrypto.a",
".conan2/p/b/opens307b88b6834d8/p/lib/libssl.a"
}
}
=> install conan::openssl/3.5.0#62d21a127982d5ddc42a83cffc147a4b latest .. ok
configure
{
kind = static
plat = wasm
builddir = build
ccache = true
host = linux
arch = wasm
ndk_stdcxx = true
emsdk =emsdk
mode = debug
}
warning: we cannot get tool(cc) in toolchain(cross) with linux/x86_64, because it has been not checked yet!
warning: we cannot load toolchain(cross), because it has been not checked yet!
构建的日志
checking for emcc ... emcc
checking for the c++ compiler (cxx) ... emcc
checking for emcc ... ok
checking for flags (-fPIC) ... ok
> emcc "-fPIC"
checking for flags (-fvisibility-inlines-hidden) ... ok
> emcc "-fvisibility-inlines-hidden"
checking for flags (-O0) ... ok
> emcc "-O0"
[ 23%]: cache compiling.debug main.cpp
emcc -c -g -O0 -o build/.objs/rsa_example/wasm/wasm/debug/main.cpp.o main.cpp
checking for flags (-MMD -MF) ... ok
> emcc "-MMD" "-MF" "/dev/null"
checking for flags (-fdiagnostics-color=always) ... ok
> emcc "-fdiagnostics-color=always"
error: @programdir/core/main.lua:329: @programdir/actions/build/main.lua:146: @programdir/modules/async/runjobs.lua:331: @programdir/modules/private/action/build/object.lua:100: @programdir/modules/core/tools/gcc.lua:1035: main.cpp:1:10: fatal error: 'openssl/rsa.h' file not found
1 | #include <openssl/rsa.h>
| ^~~~~~~~~~~~~~~
1 error generated.
stack traceback:
[C]: in function 'error'
[@programdir/core/base/os.lua:1075]:
[@programdir/modules/core/tools/gcc.lua:1035]: in function 'catch'
[@programdir/core/sandbox/modules/try.lua:123]: in function 'try'
[@programdir/modules/core/tools/gcc.lua:976]:
[C]: in function 'xpcall'
[@programdir/core/base/utils.lua:246]:
[@programdir/core/tool/compiler.lua:288]: in function 'compile'
[@programdir/modules/private/action/build/object.lua:100]: in function 'script'
[@programdir/modules/private/action/build/object.lua:131]: in function 'build_object'
[@programdir/modules/private/action/build/object.lua:171]: in function 'jobfunc'
[@programdir/modules/async/runjobs.lua:247]:
[C]: in function 'xpcall'
[@programdir/core/base/utils.lua:246]: in function 'trycall'
[@programdir/core/sandbox/modules/try.lua:117]: in function 'try'
[@programdir/modules/async/runjobs.lua:230]: in function 'cotask'
[@programdir/core/base/scheduler.lua:406]:
stack traceback:
[C]: in function 'error'
@programdir/core/base/os.lua:1075: in function 'os.raiselevel'
(...tail calls...)
@programdir/core/main.lua:329: in upvalue 'cotask'
@programdir/core/base/scheduler.lua:406: in function <@programdir/core/base/scheduler.lua:399>
Xmake 版本
3.0.0
操作系统版本和架构
Debian 6.1.124-1
描述问题
openssl依赖已经安装完毕
$ cat build/.conan/openssl/3.5.0#62d21a127982d5ddc42a83cffc147a4b/conanbuildinfo_openssl.xmake.lua { Emscripten_wasm_Release = { includedirs = {".conan2/p/b/opens307b88b6834d8/p/include"}, linkdirs = {".conan2/p/b/opens307b88b6834d8/p/lib"}, links = {"ssl", "crypto"}, frameworkdirs = {}, frameworks = {}, syslinks = {}, defines = {}, cxxflags = {}, cflags = {}, shflags = {}, ldflags = {}, __bindirs = {".conan2/p/b/opens307b88b6834d8/p/bin"}, __resdirs = {}, __srcdirs = {} } }构建的时候,如下日志
期待的结果
期待在使用emcc编译的时候应该带上
-I,引入依赖的头文件路径工程配置
附加信息和错误日志
配置的日志
构建的日志