构建用于在buntu 11.04中工作,现在在12.04中没有。
与someLib.so
的位置存在冲突。也就是说,它正在寻找错误的位置。 /usr/lib/here/someLib.so
是正确的位置。
当我在ccmake中运行'c'配置cmd时,它注意到了冲突,一次。现在ccmake不再抱怨,但错误依然存在。 runtime library [someLib.so] in /usr/lib may be hidden by files in: /usr/lib/here
CMakeLists.txt中导致构建错误的行是:
ADD_EXECUTABLE(test main.cpp)
TARGET_LINK_LIBRARIES(test moreStuff evenMoreStuff)
我在build.make
文件中看到了问题。这是由ccmake生成的。我无法弄清楚ccmake在someLib.so
处于/usr/lib/
而非@ /usr/lib/here/
的想法。我认为它会在某处SET()
声明。我找不到了。
1)什么是配置文件(ccmake'c'cmd)?它会在哪里(同一个目录?)?
我想如果我去它,我将能够再次看到错误。 (改变CMakeFile.txt似乎不会这样做。)
2)如何找出someLib.so
的位置? (我在找什么?)
我讨厌CCMAKE。感谢
答案 0 :(得分:1)
我想说这是一个find_library调用的问题。如果我没记错的话,当您的环境指向两个包含同名库文件的不同位置时,就会发生这种情况。
您可以通过更改环境以防止它发生这种情况,使其不指向两个位置或使用NO _ * _ PATH与find_library调用之一来阻止cmake找到这两个位置(例如,您可以定义自己的路径这个find_library并使用NO_DEFAULT_PATH来阻止cmake使用环境路径 - 参见文档:http://www.cmake.org/cmake/help/v2.8.10/cmake.html#command:find_library)
find_library(someLib_location NAMES someLib PATHS / usr / lib / here / NO_DEFAULT_PATH)
关于1)我认为它们被称为CMakeCache文件,但最安全的方法是删除整个构建结构(如果你正在构建源代码,这不是问题)
关于2)我会按库名搜索CMakeList.txt文件(没有.so后缀和lib前缀,因为它们可能是由CMAKE_FIND_LIBRARY_PREFIXES和CMAKE_FIND_LIBRARY_SUFFIXES变量添加的)
答案 1 :(得分:0)
首先,我建议使用以下命令检查软件包是否已安装:
const functions = require('firebase-functions');
const { Storage } = require('@google-cloud/storage');
const express = require('express');
var app = express();
var fs = require('fs');
// Your Google Cloud Platform project ID
const projectId ='<project-Id>';
// Creates a client
const storage = new Storage({
projectId: projectId,
keyFilename: '<>'
});
const bucket = storage.bucket("<bucket-name>");
// Byte aray to Image
function saveImage(filename, data) {
console.log("inside saveImage", data.length);
var myBuffer = new Buffer.alloc(data.length);
for (var i = 0; i < data.length; i++) {
myBuffer[i] = data[i];
}
console.log(myBuffer)
fs.createWriteStream(filename, myBuffer, 'binary', function (err) {
console.log("inside writeFile");
if (err) {
console.log('error inside fs', err);
} else {
console.log("The file was saved!");
}
});
}
saveImage("image1.png", result);
app.use(function (req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With,
Content-Type, Accept");
next();
});
exports.UploadImage = functions.https.onRequest(app);
如果尚未安装,请使用apt-get或任何其他方法进行安装,然后重试。如果已安装但位置错误,请使用link命令创建正确的位置,如下所示:
dpkg -L SomeLib
希望对您有帮助。