将库构建/移植到本机客户机项目

2024-09-30 05:32:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试重新构建一个现有的c++项目,以便使用naclsdk进行构建,并且我需要链接一些库,以便修改后的项目能够正确编译。我仍然处于“入门”教程阶段来解决问题,因此到目前为止,我只修改了basic.cc项目文件和相应的Makefile,以添加对jsoncpp的支持。。。但是现在我完全被困在尝试将其他一些库移植到这个项目中。特别是,我正在尝试添加curl和opencv,但是我想学习这个过程的基础知识,这样下次我就不用花几天时间了。在

我一直在使用这个页面作为我的主要参考:https://chromium.googlesource.com/webports/+/master/README.md。因为我通常只在visualstudio中工作,并且倾向于使用相同的库,所以我不经常使用命令行或cygwin等。。。所以当我陷入这件事的时候,我立刻迷失了方向。我先道歉,但我看了几天就头晕了。在

不管怎样,我已经从webports git克隆了所有的库,所以我很确定我有构建它们所需的所有文件(例如,有“pkg_info”的大量目录)建筑.sh“和”氯化钠贴片"). 我已经启动并运行了cygwin,但是我仍然不清楚1)我是否正确设置了环境变量;2)是否安装了cywin,以及运行建筑.sh“剧本等

作为一个测试,即使我没有在这个项目中使用它,我一直在尝试链接“openssl”以遵循示例。我已经配置并同步了gclient,以便在“webports”目录中找到一个新的“src”目录,并且在cygwin控制台中输入了以下内容:

 $ cd src
 # NACL_ARCH=arm make openssl

带着这个信息回来了:

^{pr2}$

在尝试了几十种变体之后,我终于从示例中尝试了以下命令:

^{3}$

它带着稍微更令人兴奋但仍然不成功的信息回来了:

 + set -e
 + TARGETS=openssl
 + TARGETS=openssl
 + BUILD_FLAGS=--ignore-disabled
 + export BUILD_FLAGS
 + NACL_ARCH=x86_64
 + TOOLCHAIN=clang-newlib
 + make openssl
 make: Nothing to be done for 'openssl'.
 + NACL_ARCH=x86_64
 + TOOLCHAIN=glibc
 + make openssl
 make: Nothing to be done for 'openssl'.
 + NACL_ARCH=i686
 + TOOLCHAIN=clang-newlib
 + make openssl
 make: Nothing to be done for 'openssl'.
 + NACL_ARCH=i686
 + TOOLCHAIN=glibc
 + make openssl
 make: Nothing to be done for 'openssl'.
 + NACL_ARCH=arm
 + TOOLCHAIN=clang-newlib
 + make openssl
 make: Nothing to be done for 'openssl'.
 + NACL_ARCH=arm
 + TOOLCHAIN=glibc
 + make openssl
 make: Nothing to be done for 'openssl'.
 + NACL_ARCH=le32
 + TOOLCHAIN=pnacl
 + make openssl
 make: Nothing to be done for 'openssl'.
 + '[' -n '' ']'

所以,是的,我显然遗漏了流程的某些部分,但是文档并不能帮助我弄清楚这是什么。任何朝着正确方向前进的人都会非常感激的。在

编辑:

在试图破译各种警告和错误消息后,我决定彻底卸载cygwin,并重新安装它,尽可能多地安装一些似乎与git、make、python等相关的软件包——这花了我很多时间。然后我删除了之前所有的nacl_sdk文件,从头开始。这似乎消除了大多数警告,但构建仍然失败。在

当gclient与分支头同步时,我仍然会收到一些警告或通知(例如“字节编译被禁用”),尽管看起来大部分都是由于新的“src”文件中隐藏的特定指令造成的。我也收到了一个奇怪的通知,我使用的是subversion而不是git(即使安装了git),但这似乎也没有引起任何问题。在

总之,同步完成后,我设置NACL_SDK_ROOT环境变量并更改目录:

 $ export NACL_SDK_ROOT=/cygdrive/c/Users/mimewear/Desktop/nacl_sdk/pepper_49
 $ cd src

然后继续构建:

 $ NACL_ARCH=le32 TOOLCHAIN=pnacl make openssl
 bin/webports install openssl
 Building 'gtest' [le32/pnacl/release]
 Mirroring upstream git repo: https://github.com/google/googletest.git@6f8a664
 git clone --mirror https://github.com/google/googletest.git github.com_google_googletest.git
 Traceback (most recent call last):
   File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
     "__main__", fname, loader, pkg_name)
   File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
     exec code in run_globals
   File "/cygdrive/c/Users/mimewear/Desktop/nacl_sdk/webports/src/lib/webports/__main__.py", line 385, in <module>
     sys.exit(main(sys.argv[1:]))
   File "/cygdrive/c/Users/mimewear/Desktop/nacl_sdk/webports/src/lib/webports/__main__.py", line 371, in main
     run_main(args)
   File "/cygdrive/c/Users/mimewear/Desktop/nacl_sdk/webports/src/lib/webports/__main__.py", line 366, in run_main
     do_cmd(p)
   File "/cygdrive/c/Users/mimewear/Desktop/nacl_sdk/webports/src/lib/webports/__main__.py", line 342, in do_cmd
     pkg_commands[args.command](package, args)
   File "/cygdrive/c/Users/mimewear/Desktop/nacl_sdk/webports/src/lib/webports/__main__.py", line 173, in cmd_pkg_install
     from_source=options.from_source)
   File "/cygdrive/c/Users/mimewear/Desktop/nacl_sdk/webports/src/lib/webports/source_package.py", line 267, in install
     self.install_deps(force, from_source)
   File "/cygdrive/c/Users/mimewear/Desktop/nacl_sdk/webports/src/lib/webports/source_package.py", line 223, in install_deps
     dep.install(True, force, from_source)
   File "/cygdrive/c/Users/mimewear/Desktop/nacl_sdk/webports/src/lib/webports/source_package.py", line 267, in install
     self.install_deps(force, from_source)
   File "/cygdrive/c/Users/mimewear/Desktop/nacl_sdk/webports/src/lib/webports/source_package.py", line 223, in install_deps
     dep.install(True, force, from_source)
   File "/cygdrive/c/Users/mimewear/Desktop/nacl_sdk/webports/src/lib/webports/source_package.py", line 281, in install
     self.build(build_deps, force)
   File "/cygdrive/c/Users/mimewear/Desktop/nacl_sdk/webports/src/lib/webports/source_package.py", line 358, in build
     self.download()
   File "/cygdrive/c/Users/mimewear/Desktop/nacl_sdk/webports/src/lib/webports/source_package.py", line 397, in download
     self.git_clone_to_mirror()
   File "/cygdrive/c/Users/mimewear/Desktop/nacl_sdk/webports/src/lib/webports/source_package.py", line 627, in git_clone_to_mirror
     run_git_cmd(paths.CACHE_ROOT, ['clone', '--mirror', git_url, git_mirror])
   File "/cygdrive/c/Users/mimewear/Desktop/nacl_sdk/webports/src/lib/webports/source_package.py", line 87, in run_git_cmd
     stdout=subprocess.PIPE)
   File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
     errread, errwrite)
   File "/usr/lib/python2.7/subprocess.py", line 1335, in _execute_child
     raise child_exception
 OSError: [Errno 2] No such file or directory: '/cygdrive/c/Users/mimewear/Desktop/nacl_sdk/webports/src/out/cache'
 make: *** [Makefile:89: openssl] Error 1

这是一个进步,但我无法理解最后的错误消息。“webports/src/out/cache”目录不存在,当“src”目录与gclient同步或openssl试图构建时,似乎没有创建该目录。我还可以看到异常是在第1335行抛出的“子流程.py,如果我确实在正确的位置创建了“cache”目录并重试,那么在引发相同的异常之前,构建会稍微向前推进一点(但是这次没有引用丢失的文件/目录)。在

在这一点上,我只能认为我缺少了存储库的某些部分或其他东西??说真的,WTF??我真的不知道自己想知道什么. 在

我希望如此接近。在


Tags: inpysrcmakeliblinesdkusers

热门问题