我有一个stack多包项目,其中"多包" zip-conduit-0.2.2.2(我需要调整一些依赖版本以使其编译nightly-2015-10-12).
我zip-conduit在主包中使用,我也想进入Setup.hs以便能够打包zip文件.
我有build-type: Custom我的cabal文件并stack build尝试构建Setup.hs.问题是构建Setup.hs无法找到依赖关系zip-conduit-0.2.2.2.
我可以使用多包依赖Setup.hs吗?如果是这样的话?如果没有,我的替代方案是什么?
注意:我已经看过这个参考https://github.com/commercialhaskell/stack/pull/899,但我不明白.
我有一个表现不佳的 json 源。它经常提供意外的 JSON,其中包含格式错误的数组元素。我想解析这个 JSON 并忽略任何格式错误的数组元素。
这是我的尝试:
{-# LANGUAGE OverloadedStrings #-}
module Main where
import Control.Applicative ((<$>), (<*>))
import Control.Monad (mzero)
import Data.Aeson
import Data.ByteString.Lazy.Char8 (ByteString, pack)
data Foo = Foo Integer [Maybe Bar] deriving (Show)
data Bar = Bar Integer Integer deriving (Show)
instance FromJSON Foo where
parseJSON (Object v) = Foo <$> (v .: "a") <*> (v .: "b")
parseJSON _ = mzero
instance FromJSON Bar where
parseJSON (Object v) = Bar <$> (v .: "c") <*> (v …Run Code Online (Sandbox Code Playgroud) 我想提供一些对象的一次性配置.
这段代码:
class Foo
{
public:
static struct Bar {
bool a = true;
int b = 69;
} bar;
};
int main(int argc, char **argv)
{
Foo::bar.a = false;
}
Run Code Online (Sandbox Code Playgroud)
编译得很好:
$ g++ -c -std=gnu++11 main.cpp
Run Code Online (Sandbox Code Playgroud)
但链接器抱怨缺少符号:
$ g++ main.o
Undefined symbols for architecture x86_64:
"Foo::bar", referenced from:
_main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?
和
实现同样目标的更好方法是什么?