小编Kla*_*aus的帖子

通过mac上的gcc编译iOS Objective-C命令行应用程序

这是一个非常简单的Objective-C控制台应用程序:

#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>

int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    CLLocationManager *locationManager = [[CLLocationManager alloc] init];
    NSLog(@"Hello world!");

    [pool drain];

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

gcc main.m -o main -ObjC -framework Foundation -framework CoreLocation在Mac上编译它.

我的Mac上也安装了iOS SDK.如何修改此命令以在我的计算机上编译相同的代码,以便在(越狱)iOS设备上使用

然后,我可以通过ssh传输可执行文件并使用它进行签名ldid.

gcc jailbreak ios

16
推荐指数
2
解决办法
2万
查看次数

使用std :: inner_product时零内部产品

下面的C++程序应该返回一个严格的正值.然而,它返回0.

怎么了 ?我怀疑是双重转换,但我无法弄清楚为什么以及如何.

#include <iostream>
#include <vector>
#include <numeric>
using namespace std;
int main()
{

    vector<double> coordinates;
    coordinates.push_back(0.5);
    coordinates.push_back(0.5);
    coordinates.push_back(0.5);

     cout<<inner_product(coordinates.begin(), coordinates.end(), coordinates.begin(), 0)<<endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ type-conversion standard-library

12
推荐指数
1
解决办法
1448
查看次数

选择总和和内部联接

我有两张桌子

  • Bills: id amount reference

  • Transactions: id reference amount

以下SQL查询

SELECT 
   *,
   (SELECT SUM(amount) 
    FROM transactions 
    WHERE transactions.reference = bils.reference) AS paid
FROM bills
GROUP BY id HAVING paid<amount
Run Code Online (Sandbox Code Playgroud)

意味着来自表的某些行Bills,添加一个列paid,其中包含相关事务量的总和.

但是,它仅在每个账单至少有一笔交易时才有效.否则,不返回无交易账单的行.

也许,那是因为我应该做一个内部联接!

所以我尝试以下方法:

SELECT 
   *,
   (SELECT SUM(transactions.amount) 
    FROM transactions 
    INNER JOIN bills ON transactions.reference = bills.reference) AS paid
FROM bills
GROUP BY id 
HAVING paid < amount
Run Code Online (Sandbox Code Playgroud)

但是,这会为所有行返回相同的pay值!我究竟做错了什么 ?

sql join

10
推荐指数
1
解决办法
8万
查看次数

32 kB的编译代码多少钱

我打算使用Arduino可编程板.它们的闪存存储量非常有限,范围在16到128 kB之间,用于存储编译的C或C++代码.

有没有办法估计它代表多少(标准)代码?

我想这很模糊,但我只是在寻找一个数量级.

c c++ size arduino

8
推荐指数
1
解决办法
1万
查看次数

C套接字客户端/服务器滞后

我正在编写C/C++客户端/服务器套接字应用程序.此时,客户端每隔50ms将自身连接到服务器并发送消息.

一切似乎都有效,但数据流不是连续的:突然,服务器不再接收任何东西,然后一次收到5条消息......有时候一切正常......

有人知道这种奇怪行为的起源吗?

部分代码:

客户:

while (true)
{
if (SDL_GetTicks()-time>=50)
{
socket = new socket();
socket->write("blah");
message.clear();
message = socket->read();
socket->close();
delete socket;
time=SDL_GetTicks();
}
}
Run Code Online (Sandbox Code Playgroud)

服务器:

while (true) {
fd_set readfs;
struct timeval timeout={0,0};
FD_ZERO(&readfs);
FD_SET(sock, &readfs);
select(sock + 1, &readfs, NULL, NULL, &timeout)
if(FD_ISSET(sock, &readfs))
{
SOCKADDR_IN csin;
socklen_t crecsize = sizeof csin;
SOCKET csock = accept(sock, (SOCKADDR *) &csin, &crecsize);
sock_err = send(csock, buffer, 32, 0);
closesocket(csock);
}
}
Run Code Online (Sandbox Code Playgroud)

编辑: 1.我试着做

int flag = 1;
setsockopt(socket, IPPROTO_TCP, …
Run Code Online (Sandbox Code Playgroud)

c sockets

7
推荐指数
2
解决办法
2447
查看次数

铸造变化的价值奇怪

为什么a1=72不是73在C++代码本(可怕的)片段?

#include <iostream>
#include <string>

using namespace std;

int main (int argc, char* argv[])
{   
    double       a  = 136.73;
    unsigned int a1 = (100*(a-(int)a));

    cout << (a-(int)a)     << endl; // 0.73
    cout << 100*(a-(int)a) << endl; // 73
    cout << a1             << endl; // 72 !
}
Run Code Online (Sandbox Code Playgroud)

您可以在http://codepad.org/HhGwTFhw执行它

c++ casting

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

Makefile构建目录和依赖项列表

在makefile中,我在构建目录中构建了所有.o文件:

program: class1.o class2.o class3.o
    g++ $(BUILDDIR)class1.o $(BUILDDIR)class2.o $(BUILDDIR)class3.o -o $@
Run Code Online (Sandbox Code Playgroud)

$(BUILDDIR)class1.o $(BUILDDIR)class2.o $(BUILDDIR)class3.o从依赖列表生成会很酷......

我知道这$^会给我所有依赖项的列表,用空格分隔,但我不能处理子目录.

可能吗 ?

如果我有program: class1.o class2.o class3.o configure,我可以configure从列表中排除吗?

谢谢 :)

编辑:迈克尔的解决方案效果很好,但这样做,make没有找到的依赖关系和具有每次建立一切......是不是有一个更简单的方法,使得当潜规则一样program: class1.o class2.o class3.o,告诉它把二进制文件在构建目录?

dependencies makefile g++ subdirectory

3
推荐指数
2
解决办法
5024
查看次数

使用Boost :: tokenizer的两个相同程序,但是两个不同的输出

以下C ++程序

#include <iostream>
#include <boost/tokenizer.hpp>
using namespace std;
int main()
{
    typedef boost::tokenizer<boost::char_separator<char> > tokenizer;

    string s ("(0,30,0)");

    tokenizer tokens(s.substr(1,s.size()-2), boost::char_separator<char>(","));
    for (tokenizer::iterator tok_iter = tokens.begin(); tok_iter != tokens.end(); ++tok_iter)
        cout<<*tok_iter<<endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

有一个问题,因为它输出0 0 0而不是0 30 0...

但是,如果我像这样稍微改变一下:

#include <iostream>
#include <boost/tokenizer.hpp>
using namespace std;
int main()
{
    typedef boost::tokenizer<boost::char_separator<char> > tokenizer;

    string s ("(0,30,0)");

    //Modified lines:
    string t (s.substr(1,s.size()-2));
    tokenizer tokens(t, boost::char_separator<char>(","));

    for (tokenizer::iterator tok_iter = tokens.begin(); tok_iter != tokens.end(); ++tok_iter)
        cout<<*tok_iter<<endl; …
Run Code Online (Sandbox Code Playgroud)

c++ boost

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

在Python正则表达式中匹配\ [\]

我试图替换表单的所有表达式

\[something\]
Run Code Online (Sandbox Code Playgroud)

在一个字符串中

\[<img src='something'>\]
Run Code Online (Sandbox Code Playgroud)

既然是\[ ]特殊字符,我需要espace他们(所以\\,\[\]),因此我的代码将是

def repl(m):
    return "<img src='"+m.group(1)+"'>"

print re.sub("\\\[(.*?)\\\]", repl, "frfrfr\nfrrffr<p>\[something\]</p>frff\nfrfrr", re.S)
Run Code Online (Sandbox Code Playgroud)

但是,这会返回原始字符串.有人能指出我的错误吗?

python regex

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

QDesktopServices::openUrl with Ressource

如何qressource使用命令打开资源文件 ( ) QDesktopServices::openUrl

我尝试了几种方法,但似乎都不起作用(例如QDesktopServices::openUrl(QUrl(tr(":ressource.pdf")));

谢谢你。

c++ qt

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

G ++和sed管道

我想在g ++的控制台输出中用"on"替换所有"no".我试过了

$ g++ | sed -e 's/no/on/g'
Run Code Online (Sandbox Code Playgroud)

但它表明

i686-apple-darwin9-g ++ - 4.0.1:没有输入文件

代替

i686-apple-darwin9-g ++ - 4.0.1:关于输入文件

bash g++ sed

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

std :: string获得完全意外的值

我的类有一个成员std::string received;,在其构造函数中的空字符串中初始化,以及一个printReceived打印字符串的函数cout.

main(),创建上述类的实例,并printReceived进行调用.

没有得到一个空字符串,而是获得了完全意想不到的值(但总是相同):

  • 如果printReceived是的话std::cout<<"Received ":<<received<<std::endl;,我明白了

    Received: eived: 作为输出.

  • 如果此文件已链接,则在未调用的另一个类的函数中存在的字符串常量.

那可能来自哪里?这让我很生气......所有变量都被正确初始化了.我之前从未遇到过这个问题,而且我用C++编写了很多程序.

这是一个完整的最小例子:

CellularTest.cpp

#include "A.h"

#include <iostream>

int main()
{
    A s;

    s.println("AT+CSQ");

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

A.cpp

#include "A.h"

A::A()
: received("")
{
}
void A::println(char* s)
{
    received+=s+'\n';
    treatReceived();
}
void A::treatReceived()
{
    std::cout<<"Received: "<<received<<std::endl;
}
Run Code Online (Sandbox Code Playgroud)

#include <iostream>
#include <string>

class A
{
    public:
        A();
        void println(char* s); …
Run Code Online (Sandbox Code Playgroud)

c++ string

0
推荐指数
1
解决办法
158
查看次数