小编arn*_*olt的帖子

以32位模式运行OS X通用二进制文件

我有一个第三方库(Xerox有限状态工具的接口)作为通用二进制文件,内部有两个变体:PPC和i386变体.我还有一个Python接口(使用ctypes).

但是当我尝试运行Python接口提供的示例代码时,我得到一个错误抱怨库是错误的架构:

ImportError:dlopen(/Users/arne/sw/lib/libxcfsm.dylib,10):找不到合适的图像.找到了:
/Users/arne/sw/lib/libxcfsm.dylib:mach-o,但架构错误

从我可以收集的内容来看,这是因为除了我的库中的两个版本之外,python可执行文件内部还有一个x86_64变体,并且更喜欢在该模式下运行.有没有办法让我强制python可执行文件启动i386版本而不是x86_64版本,只是为了一些脚本?

python macos universal-binary

7
推荐指数
1
解决办法
4427
查看次数

为什么此代码可以用g ++而不是MSVC ++编译?

我正在尝试编译一些开源代码(https://github.com/BieremaBoyzProgramming/bbpPairings),我可以使用g++(v6.3.0)在linux上进行编译,但是无法在Visual Studio(VS)中进行编译社区2019 / 16.1.5),但有些模糊(对我来说,但我的C ++确实很弱)错误:“错误C2143:语法错误:缺少';' 在“ <”之前。

源代码中有问题的代码在这里,但是从代码中提取的最小示例是:

#include <iostream>
#include <random>

class Configuration {};

class MatchesConfiguration {
public:
    template <class RandomEngine>
    MatchesConfiguration(
        Configuration&&,
        RandomEngine&);
};

template <class RandomEngine>
MatchesConfiguration::MatchesConfiguration(
    Configuration&& configuration,
    RandomEngine& randomEngine) {}

template
MatchesConfiguration::MatchesConfiguration<std::minstd_rand>( // <--- SYNTAX ERROR HERE
    Configuration&&,
    std::minstd_rand&);

int main()
{
    std::cout << "Hello World!\n"; 
}
Run Code Online (Sandbox Code Playgroud)

我看过有关错误代码MSDN描述,但是我对C ++和模板的理解太微不足道,无法找出问题所在。项目README表示预期会使用C ++ 14(对于FS来说有一些可选的C ++ 17东西,我认为在这里不重要),但据我从功能兼容性表中可以看出,所有C + VS 2019应该支持+14。

c++ visual-c++ c++14

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

为什么 Java 类加载在 Linux 上会失败,但在 Windows 上会成功?

我有一个使用 Jetty 部署的 Java Web 应用程序(使用 Spring)。如果我尝试在 Windows 机器上运行它,一切都按预期工作,但是如果我尝试在我的 Linux 机器上运行相同的代码,它会像这样失败:

【正常启动输出】
11:16:39.657 INFO [main] org.mortbay.jetty.servlet.ServletHandler$Context.log>(ServletHandler.java:1145)>16> 设置 Web 应用程序根系统属性:'webapp.root' = [/path/到/工作/目录]
java.lang.reflect.InvocationTargetException
        在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        在 java.lang.reflect.Method.invoke(Method.java:597)
        在 org.mortbay.start.Main.invokeMain(Main.java:151)
        在 org.mortbay.start.Main.start(Main.java:476)
        在 org.mortbay.start.Main.main(Main.java:94)
引起:java.lang.ExceptionInInitializerError
        在 org.springframework.web.util.Log4jWebConfigurer.initLogging(Log4jWebConfigurer.java:129)
        在 org.springframework.web.util.Log4jConfigListener.contextInitialized(Log4jConfigListener.java:51)
        在 org.mortbay.jetty.servlet.WebApplicationContext.doStart(WebApplicationContext.java:495)
        在 org.mortbay.util.Container.start(Container.java:72)
        在 org.mortbay.http.HttpServer.doStart(HttpServer.java:708)
        在 org.mortbay.util.Container.start(Container.java:72)
        在 org.mortbay.jetty.Server.main(Server.java:460)
        ……还有 7 个
引起:org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: 没有合适的日志构造函数 [Ljava.lang.Class;@15311bd for org.apache.commons.logging.impl.Log4JLogger (Caused通过 java.lang.NoClassDefFoundError: org/apache/log4j/Category) (由 org.apache.commons.logging.LogConfigurationException 引起:没有合适的日志构造函数 [Ljava.lang.Class;@15311bd for org.apache.commons.logging。 impl.Log4JLogger(由 java.lang.NoClassDefFoundError 引起:org/apache/log4j/Category))
        在 org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:543)
        在 org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235)
        在 org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:209)
        在 …

java cross-platform classloader

2
推荐指数
1
解决办法
4986
查看次数