|IRC Nick||Time (GMT-7)||Message|
|tpaul||10:01||I'm getting some compiler errors when linking against a 3rd party library in VS2010. While not directly related to FB, I am trying to link this library into an FB project and I am hoping someone in here might have seen this kind of error before and point me in the right direction.
The errors is: MSVCRT.lib(MSVCR100.dll) : error LNK2005: _sprintf already defined in LIBCMTD.lib(sprintf.obj), and I have the error for _fclose, _fflush, _free , and _malloc
|jshanab||11:01||tpaul. I have seen that. I believe you are both trying to static link and dynamic link to the MS runtime at the same time. Plugin is built with /MT and your lib is built with /MD
LIBCMTD is the static but debug version in the plugin and MSVCRT is the dynamic one trying to be linked in your included lib.
|tpaul||11:01||Thank you jshanab. Does this mean that I need a static version of my library in order to work with FB?
Or that I need to tweak some linker settings? I am looking into the latter at the moment.
|jshanab||12:01||tpaul. sorry we had network trouble here. You need to make sure all libs built are built the same as the plugin. By default this is /MT which staticaly links the c++ runtime functions it needs so you do not run into issues deploying on non-development machines. /MD and /MDd is the default for most windows libraries so you have to either rebuild them, download /MT builds or build the plugin...
...with /MDd and/or /MD.
Just be aware if you chose to change the plugin, the users of your plugin may be prompted for and have to go download the microsoft redistributable which is only allowed for release builds ONLY. This was less of an issue in WinXp but every type /MT,/MD,//MDd,/MTd use a different heap so strange crashes occur if you mix them
|tpaul||12:01||No problem jshanab, you help is greatly appreciated. I do not have the ability to recompile the 3rd party library as it's closed source but I CAN rebuild the FB plugin! Making users install the redistributable is not much of an issue.|
|jshanab||12:01||Just remember it is "illeagal" to redistribute the debug version pffft|
|tpaul||12:01||I just need to find out which CMake file /MT is set and change it to /MD and rebuild|
|jshanab||12:01||I saw that in the FAQ on the wiki...|
|tpaul||12:01||haha, maybe I can include the redistributable with the WiX installer?|
|jshanab||12:01||http://www.firebreath.org/display/documentation/Prep+Scripts where it says "Windows Params" dynamic is the /MD|
|tpaul||12:01||Thanks jshanab, I can't thank you enough I thought I was at a dead end. I'm going to give this a try.|
|jshanab||12:01||I was at that same dead end in the past :-)|
|taxilian||14:01||anyone interested enough in the new cmake layout (project centric) that they want to help with it?|
|kylehuff||14:01||sure, except I know absolutely nothing about cmake. I guess you could use me to test stuff.. ??|
|taxilian||14:01||lol. I bet you could figure it out =]
I'll talk to you a bit more in a bit, I'm on the phone
|kylehuff||14:01||I don't know man, I can't even figure out how to pass a compile-time flag to cmake from the CLI|
tha'ts not an automatic thing
|kylehuff||14:01||maybe so, but it still makes me feel like a noob|
|taxilian||14:01||I can help with that|
|kylehuff||14:01||now why would you want to help me feel like a noob?
makes me feel better
|tpaul_||15:01||I'm in the same boat as kylehuff, even after checking out the "mastering cmake" book I'm still a little intimidated but I'm willing to help, also if there's anything I can do to get the IRC logs back :)|
|taxilian||15:01||tpaul_: I think keith is working on the IRC logs; you could ask him if he needs help
either that or someone else named keith is :-P
keith` I guess his name is here
he has a basic version working that just lets you view by date
no search yet
kylehuff, tpaul_: if either or both of you would like to look at what I have so far I can tell you what needs to be done still and give you some direction
it'd be nice to see finished, but I need to focus my main efforts on work today
|tpaul_||15:01||Thanks, I really miss the IRC log search.|
|taxilian||15:01||yeah; I just don't have time to do it myself|
|tpaul_||15:01||taxillian: I'll take a look tonight, and will touch base with you tomorrow.|
|taxilian||15:01||but keith` volunteered
tpaul_: it's in the "refactor" branch on github
|kylehuff||15:01||what is the overall goal with the refactor?|
|taxilian||15:01||there are a few
1) cmake should be run on your project, which should include firebreath, not the other way around
2) prep scripts should be optional, not required
3) cmake-gui should be able to find all "prep script" options, so you should be able to customize things without needing to go looking for documentation
kylehuff: if you have time right now we could voice and/or video chat for a few minutes and I can show you around what I've been doing
another beneficial side effect of this is it will make the cmake code *much* easier to follow
I mean, I'll be honest; I'm not sure *I* remember exactly how it works as it is now
|kylehuff||15:01||I am in the middle of a huge compile of an unrelated package, but it should be done in a few|
|jshanab||15:01||Taxillian. That refactor sounds great. can't wait to try it. (I am stuck in Droid JNI hell at the moment)|
gotta love JNI
it's not done, however
the refactor, that is
same keith, different client, different not-quite-keith nickname.
|jshanab||15:01||LOL, I thought you were saying JNI was not done, and I would of agreed.|
|taxilian||15:01||lol. jshanab: yeah, probably that too|
|keith`||15:01||what'd I miss about the irc logs?|
|tpaul_||15:01||keith`: need nay help with those?|
|taxilian||15:01||keith`: hey, I did see what you've done so far, and it looks good!
when/how can I get that on my server for logs.firebreath.org?
|tpaul_||15:01||keith`: I just miss them is all :)|
|keith`||15:01||I read a bunch of them, not sure I miss them. :)
I parsed the logs into a db and am serving them up with Rails 3.
|taxilian||15:01||lol. most aren't particularly useful, but that's why we will need a search feature =]|
Search should be easy to do, now that the holidays are past.
|taxilian||15:01||it's fine with me. the trick will be that at least currently the log files are just continuously updated, so we need to figure out how to have it reparse a file and not create double entries
|keith`||15:01||mysql, but it shouldn't matter|
|keith`||16:01||ok. I'll make re-parsing files safe.
Can we use google's site search for search?
The code is running around at: https://github.com/brightshiny/fb-irc-logviewer
|taxilian||16:01||keith`: hmm. site search? I'd say that's definitely got some interesting possibilities;
hadn't considered that
I'd say it's worth trying, at least
see how well it works
|keith`||16:01||I can plug it in and we can see. Otherwise, I generally use Sphinx. http://sphinxsearch.com/|
|taxilian||16:01||never used sphinx, but I have no objection|
|keith`||16:01||Lucene? I used that when I used to Java.
Do you want me to host the app?
|taxilian||16:01||something lucene-based would work fine; I've thought about using elasticsearch a few times
hmm. I think I probably would be more comfortable hosting it, for now at least
two reasons for this
1) I'm already doing the logging
2) I've had too many people disappear part-way through doing something and I'd hate to not have control of the service and have you change jobs or something and lose track of you
I was keith_ and now I'm keith`.
That seems shifty.
where was it you have the current version up, again?
|keith`||16:01||I'll do the re-parsing in the next day or two, update github and plug in google site search.
|taxilian||16:01||I meant the live version you showed me|
What db are you using?
|taxilian||16:01||I have all of the firebreath stuff on postgres
so if that's not difficult it would probably be easiest to keep it there
|keith`||16:01||ok, I'll switch over to that for my dev.|
|taxilian||16:01||if you can get the reparsing support in then we can probably get it up pretty quickly
I'm using nginx for hosting on that server; there are a few ruby servers that will connect to it easily
I think the one I've used before is "thin"
|keith`||16:01||sure. I've used thin. I use Passenger these days.|
|taxilian||16:01||well, I don't run apache, but whatever you recommend to use that works iwth nginx will be fine with me|
|keith`||16:01||thin was easy. Easy sounds good.|
does look like passenger can work with nginx, though
whatever you'd prefer
I don't know ruby, so I'll trust your judgement
|keith`||16:01||Assuming very little traffic, it doesn't matter. :)|
and this will be relatively little
even the firebreath homepage only gets aroung 600 visits per day on busier days
it's a bit of a niche project
|jshanab||16:01||I prefer postrges and have tons more experiance than on mysql. The old speed arguments are no longer valid|
|keith`||16:01||brightshiny.me is running nginx and passenger with rvm-wrapped rubies|
|taxilian||16:01||back when I was doing a lot of db work I preferred postgres; I've always considered it a bit more robust. not sure if that's still true, but it's what I chose to use w/ all the atlassian stuff years ago when I set it up for firebreath.org and I'm sure not going to migrate it now :-P|
|keith`||16:01||I don't care what my db is so long as it sits in a corner and quietly works.|
most of my personal stuff these days uses node.js and mongodb; there are definitely some things that aren't as easy in mongo, but it is *very* nice for some things
|jshanab||16:01||It is more "oracle" like. The whole deal in the past was mysql has different back ends so they were able to turn off integrity and robustness and get some really fast speeds for static web content. There is aways a trade but postgres is the most activly developed database out there. (I am on that list and it is 100's if not thousands of developer messages a day)|
|taxilian||16:01||btw, jshanab, kylehuff, tpaul_: another reason to get the cmake refactor done is that it's stage 1 on the to-do list for FireBreath 2.0
I started it on a whim yesterday
|keith`||16:01||taxilian, can we move some of our log conversations over to email? [email protected]tshiny.me
I'm not the best with irc.
|taxilian||16:01||sure. [email protected]
I'm also available via google talk xmpp
by that same address
one of these days I need to get the irc bot back online
|tpaul||18:01||What's the minimum required version of CMake required by FireBreath? I recall seeing it on the wiki but I can't find where.|
|kylehuff||18:01||it depends on the OS I believe tpaul; look at the release page of firebreath.org|
|taxilian||18:01||tpaul: I really recommend just using the latest
on linux you're probably okay with 2.6 or later, but 2.8 would be better
on windows or mac, install the latest
|tpaul||18:01||Ah ok, 2.6.4 is in the repo, I recall building CMake from source on my Desktop but wasn't sure I needed to|
|taxilian||18:01||2.6.4 is probably okay on linux
mac requires much newer, windows it's just a good idea just in case
|tpaul||18:01||I'll go ahead an get 2.8 I recall it didn't take long to build last time|
|jshanab||18:01||I can confirm cmake 2.8.10 working fine on linux and I HAD to go 2.8.8 on mac, windows went 2.8.8 at same time without issue. (gentoo64,mac10.7, win7-64)|
|taxilian||18:01||if you're using the latest xcode you'll want 2.8.10(.2) on mac|
|jshanab||18:01||I will update next plugin build! I am on linux tonight. Funny : droid in the mornings, mac on wednesdays, linux in the evening. LOL|