标签: multiplatform

多平台安装程序

我正在寻找有关安装程序的建议.安装程序需要支持多个操作系统 - Solaris,Linux和Windows.我有三台构建机器,每台机器运行一个OS.目前使用相同的代码库 - 三种JAVA和C/C++.

installer multiplatform

5
推荐指数
1
解决办法
1638
查看次数

适用于C++的高质量库

我们都知道Boost.

还有哪些其他免费的C++库值得使用?为什么?它们是否可以与常见的编译器一起使用?

c++ multiplatform

5
推荐指数
2
解决办法
690
查看次数

某种语言与平台无关有任何缺点吗?

我正在撰写一篇关于多平台编程的论文,我想包括有关优缺点的部分.从我的理解; 任何应用程序都是多平台的,对于开发人员来说是一个巨大的卖点,因为它几乎可以使任何计算机用户成为潜在的应用程序.我只想弄清楚可能的缺点.如果有的话?

multiplatform platform-independent

5
推荐指数
1
解决办法
1129
查看次数

CMake多个工具链和目标平台

我正在从普通品牌转变为CMake作为项目的构建系统.该项目应该在不同的嵌入式Linux系统上运行,每个系统都有自己的工具链,并且每个目标也有相当多的不同配置选项(例如,不同的预处理器定义和包含/排除的一些源).它也应该在桌面Linux上工作,一些GUI模块必须在Windows上运行.

现在,CMake有其CMAKE_TOOLCHAIN_FILE选择可用于分解每个嵌入式平台的工具链和编译器特定的东西(桌面Linux和Windows不应该需要).

我想把除了CMake Wiki上列出的东西放在工具链文件中的东西不是一个好主意.

我正在考虑创建一些可以由cmake gui工具编辑的CMake变量,然后简单地if/elseif用来确定正确的设置.

有没有人有更好或更优雅的建议?

c cross-platform makefile multiplatform cmake

5
推荐指数
1
解决办法
2979
查看次数

如何在Ubuntu和Windows上为德语Umlaute配置git编码?

我注意到,提交包含邮件德国Umlaute当我运行显示不正确git log混帐击在Windows上.这些提交是使用终端在Ubuntu上进行的.通常,提交消息是用英语编写的,但是当涉及到名称时,没有办法解决,例如Added library by Simon Jünker.我猜它也可能是Git Bash无法处理字符编码.但也许有一个设置强制utf-8编码在Git的任何模块(Git Gui,Git k)中编写和显示文本.

你的Git多平台字符编码设置是什么?请确保在答案中包含两个平台的配置.您还可以添加MacOS.

git encoding multiplatform diacritics character-encoding

5
推荐指数
1
解决办法
2910
查看次数

使用maven发布过程跨平台同步工件版本

我有一个应该为几个目标平台构建的工件:

  • Linux x86
  • Windows x86
  • ARM11

不幸的是,由于缺少交叉编译器,不可能一次创建所有版本的工件.

换句话说,目标是在存储库中有这样的东西

  • artifact-1.0.0-linux.zip
  • artifact-1.0.0-windows.zip
  • artifact-1.0.0-arm11.zip
  • artifact-1.0.1-linux.zip
  • artifact-1.0.1-windows.zip
  • artifact-1.0.1-arm11.zip
  • ...

请注意,版本是同步的.怎么做到这一点?

问题是发布过程会在每次构建后升级pom.xml的版本.因此,通过在各种平台上连续构建,我可以实现

  • artifact-1.0.0-linux.zip
  • artifact-1.0.1-windows.zip
  • artifact-1.0.2-arm11.zip
  • artifact-1.0.3-linux.zip
  • artifact-1.0.4-windows.zip
  • artifact-1.0.5-arm11.zip
  • ...

但这不是我要找的.

我可以

  1. 在Linux上运行

    mvn release:prepare release:perform -DpushChanges = false

    (将pushChanges设置为false发布不会增加SCM中的版本号)

  2. 然后在Windows上运行

    mvn release:准备发布:执行

    (这会增加版本号)

但是,我有责任以适当的顺序在各种平台上触发发布流程.有没有办法maven可以帮助我这个?

你有什么建议吗?

谢谢


PS.请注意,这不是关于如何组织模块的问题.它是关于如何在多个平台上同步单个工件的发布过程.

multiplatform maven maven-release-plugin

5
推荐指数
1
解决办法
489
查看次数

登录多进程应用程序以及多线程

我正在寻找一个多进程应用程序的日志记录工具,它还包含每个进程中的多个线程.

我当前的应用程序只是多线程的,并使用ACE_Message_Queue将记录事件发送到记录器线程(实际的日志消息在应用程序线程和记录器线程之间通过全局数组共享).

我的新应用程序包含多个进程,每个进程都有多个线程.如何在这种情况下实现良好的日志记录功能?也希望摆脱ACE而支持Boost.我的新应用程序应该在Linux,Mac和Windows上运行.

先感谢您.

c++ logging boost multiplatform

5
推荐指数
1
解决办法
1958
查看次数

如何排序python unittest发现测试?

我使用Python unittest格式创建了一堆Python测试.

现在我可以运行它们了

python -m unittest discover -s TestDirectory -p '*.py' -v
Run Code Online (Sandbox Code Playgroud)

我找到了所有,然后运行它们.

现在,无论是在Windows上还是在Linux上运行测试,都会有细微差别.实际上,在Windows上,测试按字母顺序运行,而在Linux上,测试运行时没有明显的人类特定的可发现顺序,即使总是相同.

麻烦的是我依靠测试文件的前两个字母来排序测试的执行顺序.并不是说它们必须以特定的顺序运行,而是要进行某种信息测试,在其输出中显示版本数据首先出现在测试运行日志中.

在Linux上,我是否可以按字母顺序运行测试?

python unit-testing multiplatform python-unittest

5
推荐指数
1
解决办法
1169
查看次数

是否有一个允许构建独立可执行文件的Lua IDE?

我目前正在搜索Windows Lua-IDE,它可以为我的脚本文件中的任何平台(例如windows,linux,mac os x)创建独立的可执行文件.我搜索谷歌和SO,但我找到的只是一个额外的工具.

有谁知道这种Lua-IDE?

windows ide lua executable multiplatform

5
推荐指数
1
解决办法
871
查看次数

可重定位的多平台安装的理想cmake安装目录结构是什么?

CMake安装使用目标目录,通常使用GNUInstallDirs加载目标名称的标准值。例如:

include(GNUInstallDirs)
install(TARGETS Foo
    EXPORT Foo
    INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
Run Code Online (Sandbox Code Playgroud)

但是,它没有提供为不同平台或体系结构构建的不同路径。我一直在通过以下方式安装到项目中特定于平台的文件夹中CMAKE_INSTALL_PREFIX

CMAKE_INSTALL_PREFIX=dist/${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR}
Run Code Online (Sandbox Code Playgroud)

但是,这有一些问题:

  • 它复制了跨平台相同的include。
  • 如果我将不同平台安装到同一根目录但更改了lib目录,则cmake在lib / non / standard / path / cmake / FooConfig.cmake中找不到cmake配置目标。
  • 而且,模块模式搜索也无法正确找到库,这在完成MODULE模式搜索时会出现问题。如果该库恰好也有一个cmake模块,该模块要求每个find_package必须指定“ CONFIG”,该配置开始变得怪异,则可能会发生这种情况,特别是当第3方库被告知要考虑此安装目录的常见依赖性时,并且不要t在find_package中指定CONFIG,因为为什么要这么做?

我正在寻找一种与find_package模块模式和config模式一起使用的结构;像这样的东西:

<install_prefix>/
  include/
    foo/
      foo.h
  lib/
    <PLAT x ARCH x CONFIG>/
      cmake/
        foo/
          FooConfig.cmake
      libFoo.a
Run Code Online (Sandbox Code Playgroud)

目标是:

  • 可以为不同的平台,体系结构和配置共同安装libs
  • 可以共享
  • 查找包括应该在典型的模块模式搜索中工作
  • 应该只适用于vanilla find_package(Foo REQUIRED),但适用于适当的平台和架构。

考虑到我将在这里主要安装第三方库,如果可以通过重写GNUInstallDirs中的var来完成,那么它可能适用于许多库。我猜其余的部分要么必须进行编辑,要么我就放弃并使用包含平台和架构的单独安装目录。

c++ multiplatform cmake

5
推荐指数
1
解决办法
513
查看次数